关于单元测试:print语句在python proboscis中不起作用

print statement is not working in python proboscis

我们开始使用nose框架在python中编写功能和单元测试用例。我们在编写这些测试时开始学习Python。由于我们的测试类/函数之间有很多依赖关系,我们决定在nose的顶部使用proboscis框架来控制执行顺序。

我们的测试中有很多"打印"语句,而Proboscis似乎忽略了这些!测试按预期顺序运行,并测试所有测试,但不将打印语句数据打印到控制台。知道我们这里缺少什么吗?

顺便说一句,一旦我们移到Proboscis并用@test修饰所有类及其成员函数,我们就停止从"unittest.testcase"派生类。


注:根据Proboscis文档"未使用的参数传递到nose或unittest模块",以下内容应适用于Proboscis,将nosetests替换为python run_tests.py

正如@wooble在他的评论中所提到的,默认情况下,nose捕获stdout,只在测试失败时显示。您可以使用nosetests-s--nocapture开关覆盖此行为:

1
$ nosetests --nocapture

正如@wooble在他的评论中提到的,我建议使用日志模块而不是print。然后,只需传递nosetests-l DEBUG--debug=DEBUG开关,其中DEBUG由要显示的记录器名称的逗号分隔列表替换,即可显示来自模块的日志输出:

1
$ nosetests --debug=your-logger-name