Pycharm unit test interactive debug command line doesn't work

This is likely because your test runner is capturing stdout but not stderr.

I use py.test which captures both stdout and stderr so I see no output at all. If I want to see output I have to pass the -s flag to my py.test runner which can be done by modifying the run/debug configuration and adding this flag to the options field. (Run > Edit Configurations > Defaults > Python tests > py.test > add -s to the "additional arguments" field.)

>>> print 'a'
a
>>> import sys
>>> sys.stderr.write('moof')
moof
>>> sys.stdout.write('moof')
moof
>>> sys.stderr.write('test')
test

Note: the -s flag can equally be used with nose tests


If you don't want to change run/debug configuration every time you run tests, you can set JB_DISABLE_BUFFERING environment variable as "-s". It is useful if you use ^+SHIFT+D shortcut to debug tests of current file in editor.


For unittest you can add '--capture=no' to Pycharm Run/Debug configuration - this will show all output in realtime