Sle*_*lls 42 debugging unit-testing pycharm
在调试单元测试时(通过pycharm测试运行器),可以打开交互式命令行,但(与调试常规脚本时不同)输入的命令不会产生任何输出.事实上,似乎stdout被捕获到某处,因为stderr按预期工作:
>>> print "a"
>>> import sys
>>> sys.stderr.write("moof")
moof
>>> sys.stdout.write("moof")
>>> sys.stderr.write("test")
test
Run Code Online (Sandbox Code Playgroud)
这是预期的行为吗?我真的很喜欢交互式调试控制台,如果它在调试单元测试时表现良好也会很棒.
Int*_*nti 86
这可能是因为您的测试运行器正在捕获stdout而不是stderr.
我使用py.test其捕获标准输出和标准错误,所以我看到任何输出.如果我想查看输出,我必须将-s标志传递给我的py.test运行器,这可以通过修改运行/调试配置并将此标志添加到选项字段来完成.(运行>编辑配置>默认值> Python测试> py.test>添加-s到"其他参数"字段.)
>>> print 'a'
a
>>> import sys
>>> sys.stderr.write('moof')
moof
>>> sys.stdout.write('moof')
moof
>>> sys.stderr.write('test')
test
Run Code Online (Sandbox Code Playgroud)
注意:该-s标志同样可用于鼻子测试
| 归档时间: |
|
| 查看次数: |
7588 次 |
| 最近记录: |