print statement is not working in python proboscis
我们开始使用nose框架在python中编写功能和单元测试用例。我们在编写这些测试时开始学习Python。由于我们的测试类/函数之间有很多依赖关系,我们决定在nose的顶部使用proboscis框架来控制执行顺序。
我们的测试中有很多"打印"语句,而Proboscis似乎忽略了这些!测试按预期顺序运行,并测试所有测试,但不将打印语句数据打印到控制台。知道我们这里缺少什么吗?
顺便说一句,一旦我们移到Proboscis并用@test修饰所有类及其成员函数,我们就停止从"unittest.testcase"派生类。
- 欢迎使用堆栈溢出!我们鼓励你研究你的问题。如果你已经试过了,请将它添加到问题中-如果没有,请先研究并尝试你的问题,然后再回来。
- @提科德罗马:我想很明显他们已经尝试过了;在Proboscis框架下的测试中使用print……
- nose捕获stdout,只显示失败的测试。你使用print的动机是什么?如果使用print进行调试,您是否考虑过logging模块?
- 对于我们来说,它看起来像nose stdout所有成功/失败测试中的打印语句!我们的一些测试正在从一个文件中读取多个输入集,因此我们正在打印每个输入集的结果以及一些其他基本数据,如时间、输入大小等。我们没有研究日志模块,但肯定会检查它。感谢您对其进行详细说明…
注:根据Proboscis文档"未使用的参数传递到nose或unittest模块",以下内容应适用于Proboscis,将nosetests替换为python run_tests.py。
正如@wooble在他的评论中所提到的,默认情况下,nose捕获stdout,只在测试失败时显示。您可以使用nosetests-s或--nocapture开关覆盖此行为:
正如@wooble在他的评论中提到的,我建议使用日志模块而不是print。然后,只需传递nosetests和-l DEBUG或--debug=DEBUG开关,其中DEBUG由要显示的记录器名称的逗号分隔列表替换,即可显示来自模块的日志输出:
1
| $ nosetests --debug=your-logger-name |
- 你们都是对的,鼻子只显示失败的测试。默认情况下,我们使用-s-v选项和nose命令来报告所有内容。现在我们倾向于使用日志模块。感谢你们两位的帮助。