我正在使用 coverage.py
来测量我的测试的代码覆盖率 . 我很清楚这份报告 .
没有分支机构覆盖,我获得100%的覆盖率:
Name Stmts Miss Cover Missing
------------------------------------------------------------
mylib/queries.py 44 0 100%
启用分支覆盖:
Name Stmts Miss Branch BrPart Cover Missing
--------------------------------------------------------------------------
mylib/queries.py 44 1 20 3 94% 55, 21->10, 53->-48, 59->-58
有问题的来源可以找到here .
21->10
有道理; if
子句永远不会计算到 False
(跳回到外部for循环的开头) .
然而, 53->-48
和 59->-58
让我挠头 . 他们的意思是什么?
1 回答
丹的评论很接近 . 首先,负数表示从该行号开始的函数退出 . 所以-48意味着退出从第48行开始的功能 .
问题不是空循环:如果循环完成,那些分支就会发生 . 看起来他们可能没有 .
顺便说一句:Coverage.py 4.1b3改变了一些这种行为:它们被标记为
53->exit, 59->exit
. 此外,分支本身可能会有不同的识别 . 试试看 .