python - 打印语句在 python 长鼻中不起作用

标签 python unit-testing functional-testing nose

我们开始使用 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/

相关文章:

android - 将模拟 Retrofit API 服务实例注入(inject) ActivityInstrumentTestCase2

java - 在 Mule 中测试子流

unit-testing - tdd - 为第 3 方代码创建测试

php - 有没有等同于php的curl_getinfo的python库?

python - 我可以跨 GAE Pipeline API worker 保持状态吗?

Python:单元测试模块和相关导入

android - 在 Intellij 的 Android 单元测试期间记录 java.lang.RuntimeException : Stub

c# - 在 Azure DevOps 中运行时,.Net/VS 测试运行器失败

python正则表达式拆分函数问题

python:比较两个列表并按顺序返回匹配项