Python可以适用coveragepy 来统计代码行覆盖率,使用方式coverage run -m pytest 运行之后生成新的.coverage文件,这个文件以二进制形式保存着我们覆盖率的数据,如何读取覆盖率数据呢?通过cmdline 命令执行coverage report 可以查看覆盖率数据。可通过coverage report -m 查看哪些代码没有覆盖到。
Coverage提供了html report 命令coverage html会使用同样的数据建立一个文件夹htmlcov,可以在这个文件夹下跑一个python -m http.server --directory htmlcov/
然后在浏览器上打开这个服务localhost:8000,可以看到更高级版本report,可以点击看到源文件cover的地方为绿色,没覆盖到的文件为红色。没有覆盖就一目了然
如何找测试专门objprint库的覆盖率 coverage run --source objprint -m pytest
如何计算忽略别人文件的覆盖率,coverage run --omit =*/venv/Lib/site-packages/ * -m run
做复杂自定义配置时,可写在.coveragerc的配置文件中
覆盖不到的代码不想计算覆盖率要在原代码进行标注:#pragma:no cover