报告

可以为单个测试运行生成任何组合的报告。

可用的报告包括终端(显示或不显示缺失的行号)、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-coveredterm-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 使用。