Coverage.py 是用于测量Python程序代码覆盖率的工具。它 监视程序,注意代码的哪些部分已执行,然后 分析源以识别可以执行但未执行的代码。
覆盖率测量通常用于衡量测试的有效性。它 可以显示测试正在执行代码的哪些部分,以及哪些部分是 不。
安装 coverage.py
$ python3 -m pip install coverage
运行测试
用于运行测试套件并收集数据。
coverage run
如果测试运行程序命令以"python"开头,只需替换首字母 "python"与"coverage run"。
python something.py
成为coverage run something.py
python -m amodule
成为coverage run -m amodule
如果使用的
如果您通常使用:
$ pytest arg1 arg2 arg3
可以使用以下方法在覆盖率下运行测试:
$ coverage run -m pytest arg1 arg2 arg3


指定范围
将覆盖率测量限制为当前目录中的代码,以及 查找根本没有执行的文件,将参数添加到 您的覆盖范围命令行。
--source=.
coverage run --source=dir1,dir2 my_program.py arg1 arg2 coverage run --source=dir1,dir2 -m packagename.modulename arg1 arg2

分支覆盖率
coverage默认收集行覆盖率,如果想收集分支覆盖率,可以带参数--branch


可以看到views文件有12个分支,覆盖率95%
输出测试报告
coverage report

该标志还显示缺少语句的行号:-m
$coverage report -m

coverage report -m 文件名 文件名
可只收集指定的文件。
输出html测试报告
coverage html
