报告¶
可以为单个测试运行生成任何组合的报告。
可用的报告包括终端(显示或不显示缺失的行号)、HTML、XML、JSON、LCOV 和带注释的源代码。
不带行号的终端报告(默认)
pytest --cov-report term --cov=myproj tests/
-------------------- coverage: platform linux2, python 2.6.4-final-0 ---------------------
Name Stmts Miss Cover
----------------------------------------
myproj/__init__ 2 0 100%
myproj/myproj 257 13 94%
myproj/feature4286 94 7 92%
----------------------------------------
TOTAL 353 20 94%
带有行号的终端报告
pytest --cov-report term-missing --cov=myproj tests/
-------------------- coverage: platform linux2, python 2.6.4-final-0 ---------------------
Name Stmts Miss Cover Missing
--------------------------------------------------
myproj/__init__ 2 0 100%
myproj/myproj 257 13 94% 24-26, 99, 149, 233-236, 297-298, 369-370
myproj/feature4286 94 7 92% 183-188, 197
--------------------------------------------------
TOTAL 353 20 94%
跳过已覆盖的终端报告
pytest --cov-report term:skip-covered --cov=myproj tests/
-------------------- coverage: platform linux2, python 2.6.4-final-0 ---------------------
Name Stmts Miss Cover
----------------------------------------
myproj/myproj 257 13 94%
myproj/feature4286 94 7 92%
----------------------------------------
TOTAL 353 20 94%
1 files skipped due to complete coverage.
您也可以将 skip-covered
与 term-missing
一起使用。例如 --cov-report term-missing:skip-covered
这四个报告选项将输出到文件,而不会在终端上显示任何内容
pytest --cov-report html
--cov-report xml
--cov-report json
--cov-report lcov
--cov-report annotate
--cov=myproj tests/
可以指定每个报告的输出位置。XML、JSON 和 LCOV 报告的输出位置是文件。而 HTML 和带注释的源代码报告的输出位置是目录
pytest --cov-report html:cov_html
--cov-report xml:cov.xml
--cov-report json:cov.json
--cov-report lcov:cov.info
--cov-report annotate:cov_annotate
--cov=myproj tests/
最终的报告选项还可以抑制打印到终端
pytest --cov-report= --cov=myproj tests/
此模式在持续集成服务器上特别有用,在这些服务器上,需要覆盖文件进行后续处理,但不需要查看本地报告。例如,在 GitHub Actions 上运行的测试可以生成一个 .coverage 文件,供 Coveralls 使用。