Coverage 是用于统计 Python 代码覆盖率的工具,支持分支覆盖率统计,生成 HTML 格式的统计报告,Coverage利用到了Python虚拟机的trace机制。
首先需要安装Coverage:
pip install coverage
Coverage有两种方式统计代码覆盖率:
①Coverage命令行
②Coverage API
官方文档:https://coverage.readthedocs.io/en/latest/api.html
首先编写具体的测试代码:
def hello():
print('hello')
这里只是简单测试,具体其余业余代码可以自己完善。
Coverage命令行:
进入刚才编写好的coverage_test所在的目录,使用命令:
coverage run coverage_test.py
执行完毕可以输出报告:
coverage report
报告如下:
可以生成html的详细报告:
coverage html
然后再当前目录下回生成htmlcov的文件夹,使用浏览器打开index.html即可查看详细报告:
点击进去看详细:
Coverage API
API方式也很简单:
import coverage
if __name__ == '__main__':
cov = coverage.coverage()
cov.start()
# 这里放自己具体测试的代码
hello()
cov.stop()
cov.save()
cov.report()
cov.html_report()
这里需要注意的是,如果要生成报告,必须要使用save()方法,具体的方法可以参考官方文档。有些时候,可能值需要看特定的py文件的报告,可以在coverage.coverage()指定参数,比如:
cov = coverage.coverage(include=['*/coverage_test.py'])
如果要排除某些文件,参数是omit,具体可以看源码: