如何找到测试未涵盖哪些分支?

Ars*_*nko 5 python code-coverage coverage.py python-3.x

我正在测量一个小型Python应用程序的代码覆盖率.

虽然线路覆盖率为100%,但分支覆盖范围不是.问题是,coverage不会给我任何关于没有被覆盖的分支的位置的指示.

coverage run
    --branch
    --omit=/usr/lib/python3/dist-packages/*,tests/*
    -m unittest discover
Run Code Online (Sandbox Code Playgroud)

收益:

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%   
Run Code Online (Sandbox Code Playgroud)

我希望Missing列包含对应于七个错过的分支的行,但那里什么都没有.

我该怎么找到它们?

jon*_*rpe 5

-m将仅包括"完整"未命中,而不包括分支未命中.您可以使用该命令

coverage html
Run Code Online (Sandbox Code Playgroud)

创建一组HTML页面,包括突出显示所有覆盖范围,包括分支未命中.请参阅文档中的HTML报告示例.