如何使用pytest-cov同时生成覆盖率报告并在终端打印输出?
如何在一次pytest运行中同时生成覆盖率文件报告并在终端显示结果
当然可以一次性完成这个需求!pytest-cov支持通过重复使用--cov-report参数来指定多个输出目标,这样你不用跑两次测试套件就能同时得到终端的覆盖率输出和XML格式的报告文件。
具体命令示例
直接在原命令基础上添加--cov-report term(指定终端输出),再保留你的XML报告参数即可:
python3 -m pytest --cov=myapplication --cov-report term --cov-report xml:coverage.xml
效果说明
运行这个命令后:
- 终端会和你最开始一样输出覆盖率统计表格:
----------- coverage: platform linux, python 3.8.5-final-0 ----------- Name Stmts Miss Cover ----------------------------------------------- myapplication/__init__.py 0 0 100% myapplication/file.py 30 30 0% myapplication/another_file.py 20 6 70% [...] ----------------------------------------------- TOTAL 1195 464 61% - 同时会在当前目录生成
coverage.xml文件,满足你导出XML报告的需求。
扩展:支持多种报告格式同时生成
你还可以继续添加更多--cov-report参数来生成其他格式的报告,比如同时生成HTML格式的可视化报告:
python3 -m pytest --cov=myapplication --cov-report term --cov-report xml:coverage.xml --cov-report html:coverage_html_dir
这个命令会同时在终端显示结果、生成XML文件,以及在coverage_html_dir目录下生成可打开的HTML覆盖率报告。
版本兼容性说明
你当前使用的pytest 6.2.2和pytest-cov 2.11.1完全支持这个特性,不需要升级版本就能直接使用。
内容的提问来源于stack exchange,提问作者sunyata
相关产品推荐
相关产品推荐

