我们开始使用 nose 框架在 python 中编写我们的功能和单元测试用例。我们一边写这些测试一边开始学习python。由于我们的测试类/函数之间存在很多依赖关系,我们决定使用 proboscis framework在 Nose 顶部控制执行顺序。
我们的测试中有很多“打印”语句,而 proboscis 似乎忽略了这些!测试按预期顺序运行并测试所有测试但不将我们的打印语句数据打印到控制台。知道我们在这里缺少什么吗?
顺便说一句,一旦我们转移到 proboscis 并用 @test 修饰所有类及其成员函数,我们就停止从“unittest.TestCase”派生我们的类。
最佳答案
注意:根据Proboscis documentation “未使用的参数被传递给 Nose 或单元测试模块”,因此通过将 nosetests
替换为 python,以下内容应适用于 Proboscis run_tests.py
.
正如@Wooble 在他的评论中提到的,默认情况下 nose
捕获 stdout
并且只在失败的测试中显示它。您可以使用 nosetests
-s
或 --nocapture
开关覆盖此行为:
$ nosetests --nocapture
就像@Wooble 在他的评论中也提到的那样,我建议使用 logging模块而不是 print
。然后你只需要通过nosetests
-l DEBUG
或 --debug=DEBUG
开关,其中DEBUG
是替换为要显示的记录器名称的逗号分隔列表,以启用显示模块的日志输出:
$ nosetests --debug=your-logger-name
关于python - 打印语句在 python 长鼻中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12824282/