我使用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
让我摸不着头脑。他们是什么意思?
答案 0 :(得分:11)
问题不是空循环:如果循环完成,那些分支就会发生。看起来他们可能没有。
顺便说一句:Coverage.py 4.1b3改变了这种行为:它们被标记为53->exit, 59->exit
。此外,分支本身可能会有不同的识别。试一试。