首页 > 解决方案 > Python tox:在成功的测试运行时显示标准输出/打印?

问题描述

有时我想打印一些语句,以确保单元测试运行良好(即使它通过了),但找不到启用它的选项。

如果测试失败,那么它会显示自定义打印作为输出,但如果它通过,它会忽略打印或日志(我的意思是,它不会在终端输出上看到它们)。

我尝试使用详细程度,例如-vvvv,但它仍然忽略了我的打印。有nose一个选项,例如--nologcapture. 有没有类似的东西tox

标签: pythonstdouttox

解决方案


因此,tox 只是一个通用的 venv 创建者、deps 安装程序和命令执行程序。它不进行输出捕获(除非您使用--parallel)。所以它与鼻子处于不同的抽象级别。tox 可以运行您的测试或任何其他可通过命令行运行的东西。

就像您已经提到的鼻子一样:根据您的测试运行器,您可能需要停用输出捕获以查看来自测试的打印。因此,如果您使用 pytest 例如,您可以使用pytest -s禁用所有输出捕获(另见docs

您还可以在运行测试后通过在tox.initestenv 中添加类似内容来打印一些内容:

[testenv:test]
[...]
commands =
    <some test command>
    python -c 'print("All is fine."))'

推荐阅读