有时我想在我的代码中插入一些打印语句,看看当我执行它时会打印出什么。我通常使用现有的pytest测试来“锻炼”它。但是当我运行这些时,我似乎无法看到任何标准输出(至少在我的IDE PyCharm中)。

是否有一种简单的方法可以在pytest运行期间查看标准输出?


当前回答

如果有人想从输出代码中运行测试:

if __name__ == '__main__':
    pytest.main(['--capture=no'])

其他回答

-s开关禁用每个测试捕获(仅当测试失败时)。

-s等价于——capture=no。

我建议使用-h命令。可以使用一些非常有趣的命令。 但是,对于这个特殊的情况:-s快捷方式——capture=no。就足够了

pytest <test_file.py> -s

如果使用日志记录,除了通用标准输出的-s外,还需要指定打开日志记录输出。基于pytest测试中的日志记录,我使用:

pytest——log-cli-level=DEBUG -s my_directory/


尝试pytest -s -v test_login.py查看控制台的更多信息。

-v是一个简短的,冗长的

-s表示“禁用所有捕获”



如果使用PyCharm IDE,则可以使用运行工具栏运行单个测试或所有测试。Run工具窗口显示应用程序生成的输出,您可以在其中看到作为测试输出的一部分的所有打印语句。