如何解释 Python coverage.py 分支覆盖率结果?
How do I interpret Python coverage.py branch coverage results?
我正在使用 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
让我摸不着头脑。它们是什么意思?
丹的评论已关闭。首先,负数表示从该行号开始的函数退出。所以 -48 表示从第 48 行开始的函数退出。
问题不是空循环:如果循环完成,这些分支就会发生。看起来他们可能没有。
顺便说一句:Coverage.py 4.1b3 改变了一些行为:它们被标记为 53->exit, 59->exit
。此外,分支机构本身的标识可能不同。试一试。
我正在使用 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
让我摸不着头脑。它们是什么意思?
丹的评论已关闭。首先,负数表示从该行号开始的函数退出。所以 -48 表示从第 48 行开始的函数退出。
问题不是空循环:如果循环完成,这些分支就会发生。看起来他们可能没有。
顺便说一句:Coverage.py 4.1b3 改变了一些行为:它们被标记为 53->exit, 59->exit
。此外,分支机构本身的标识可能不同。试一试。