首页 文章

如何解释Python coverage.py分支覆盖结果?

提问于
浏览
8

我正在使用 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->-4859->-58 让我挠头 . 他们的意思是什么?

1 回答

  • 11

    丹的评论很接近 . 首先,负数表示从该行号开始的函数退出 . 所以-48意味着退出从第48行开始的功能 .

    问题不是空循环:如果循环完成,那些分支就会发生 . 看起来他们可能没有 .

    顺便说一句:Coverage.py 4.1b3改变了一些这种行为:它们被标记为 53->exit, 59->exit . 此外,分支本身可能会有不同的识别 . 试试看 .

相关问题