SonarQube如何计算总体覆盖率?

11

这里输入图片描述

上面的图片显示了我一个文件夹的SonarQube覆盖率,但如果你对该文件夹中所有文件百分比取平均值,得出的结果是49%,然而SonarQube将显示31.4%。如果不是通过平均值,SonarQube又是如何计算整体覆盖率的呢?对于所有的文件夹,即使是最顶层的文件夹也是如此。

1个回答

19

总体覆盖率计算方法为:

Coverage = (CT + CF + LC)/(2*B + EL)

其中

CT = 至少被评估为“true”的条件
CF = 至少被评估为“false”的条件
LC = 已覆盖的行数 = 行数 - 未覆盖的行数

B = 条件总数
EL = 可执行行数(行数)

更多细节请参见文档


谢谢回复,Tibor!我知道这一部分,我的问题更多是关于如何使特定文件夹的覆盖率百分比不是该文件夹中文件覆盖率百分比的聚合...换句话说,所有文件的覆盖率百分比的聚合总和为49%,但是,SonarQube显示34%...它从哪里得到34%?这怎么可能?如果您能回答这个问题,我将把这个答案标记为已接受的答案。谢谢! - m-a-r-c-e-l-i-n-o
2
总体覆盖率是使用相同的公式计算,但是针对目录中的所有文件。它不能仅仅是一个简单的平均值 - 想象一下有两个文件的目录,一个是只有1行被覆盖的小文件,另一个是有1000行未被覆盖的大文件 - 简单的平均值将会是50%的总体覆盖率,这将会是误导性的。 - Tibor Blenessy
是的,现在明白了。谢谢你的解释! - m-a-r-c-e-l-i-n-o
文档链接无效。 - bhantol
1
@bhantol 的链接现在已经修复。 - Ε Г И І И О

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接