When debugging unit tests (through the pycharm test runner), one can turn on the interactive command line, but (unlike when debugging regular scripts) the commands entered d
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.
Unittests usually cannot be used in combination with debuggers, unless you explicitly delcare them as to be debugged. For this, use the decorator "@unittest.debug".
s. also https://docs.python.org/3/library/unittest.html#organizing-tests for more information on this topic.
For unittest you can add '--capture=no' to Pycharm Run/Debug configuration - this will show all output in realtime
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