覆盖率如何计算其百分比?

时间:2015-12-10 00:19:50

标签: python coverage.py

我从运行报道中得到这个结果,我不能为我的生活弄清楚如何计算覆盖百分比..?

enter image description here

在这个example中,它解释了分支覆盖范围,但没有说明该示例的覆盖百分比。

更新:以下是pfind.py的详细信息: enter image description here

1 个答案:

答案 0 :(得分:5)

coverage将每个分支计为两个可能的指令,并赋予它们与非分支指令相同的权重。使用这个公式:

the actual png image

从代码中查看results.py,覆盖率百分比在(run+partial)/(statements+branches)中计算,数据来自pc_covered函数:

@property
def ratio_covered(self):
    """Return a numerator and denominator for the coverage ratio."""
    numerator = self.n_executed + self.n_executed_branches
    denominator = self.n_statements + self.n_branches
    return numerator, denominator

如您所见,如果启用分支覆盖,则每个分支将被记录两次,一次作为语句,一次作为分支。