Python 测试覆盖率统计

安装:

Python 的测试覆盖率使用 Coverage 模块, 需要先安装:

1
pip install coverage

执行:

假设你原来执行单元测试的命令为:

1
python runtest.py

那么需要分析测试覆盖率时,只要将命令改为如下即可:

1
coverage run --source . --omit */tests* runtest.py

参数解释:

  • --source .指定分析的路径为当前路径下的文件,不会分析引用其他库的覆盖率;
  • --omit */tests*指定不分析的当前路径下的tests文件夹。

查看结果:

输出到控制台的简单统计结果:

1
coverage report

也可以转化成HTML,会在当前目录生成covhtml文件夹,打开html文件即可查看详细的覆盖率情况:

1
coverage html

集成至gitlab

yaml脚本添加如下两行:

1
2
coverage run --source . --omit */tests* runtest.py
coverage report

在gitlab的CI/CD -> General pipelines settings配置中,添加Test coverage parsing的正则:

1
\d+\%\s*$

运行后,单元测试的Job页面即可看到coverage

—EOF—

0%