Pycharm unit test interactive debug command line doesn't work

前端 未结 4 1619
深忆病人
深忆病人 2020-12-03 04:24

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

相关标签:
4条回答
  • 2020-12-03 04:47

    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.

    0 讨论(0)
  • 2020-12-03 04:57

    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.

    0 讨论(0)
  • 2020-12-03 04:59

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

    0 讨论(0)
  • 2020-12-03 05:02

    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

    0 讨论(0)
提交回复
热议问题