如何让 pytest 显示被测试程序的标准输出?
在编写单元测试时,有时需要查看被测试程序的标准输出。默认情况下,pytest 会屏蔽这些输出以提高运行速度。
以以下代码为例,它使用 logger.debug 和 print 打印日志:
def test_make_keyword_task(...): ... logger.debug(keyword_task_list) print(keyword_task_list)
但是当使用 pytest 运行测试时,这些输出并没有显示。这是因为 pytest 默认屏蔽了标准输出。
要显示这些输出,可以在 pytest 命令中添加 -s 选项。该选项会取消屏蔽标准输出,允许查看程序的打印内容。
修改后的命令如下:
python -m pytest -s common
这样,运行测试后,logger.debug 和 print 的输出将正常显示。