我正在测量一个小型Python应用程序的代码覆盖率。
虽然线路覆盖率为100%,但分支覆盖范围不是。问题是coverage
没有给我任何关于没有被覆盖的分支的位置的指示。
coverage run
--branch
--omit=/usr/lib/python3/dist-packages/*,tests/*
-m unittest discover
返回:
Ran 33 tests in 0.079s
OK
Name Stmts Miss Branch BrMiss Cover Missing
-------------------------------------------------------------
app/__init__ 1 0 0 0 100%
app/file_finder 93 0 40 0 100%
app/zipper 66 0 46 7 94%
-------------------------------------------------------------
TOTAL 160 0 86 7 97%
我希望Missing
列包含与七个错过的分支相对应的行,但那里什么都没有。
我该如何找到它们?
答案 0 :(得分:5)
-m
将仅包含“完整”未命中,而不包括分支未命中。您可以使用命令
coverage html
创建一组HTML页面,其中包括对所有coverage的突出显示,包括分支未命中。参见例如来自this example的HTML报告the documentation。
答案 1 :(得分:4)
如果您有足够的勇气尝试预发布版本,那么coverage.py 4.0也会在文本报告中显示缺少的分支。