SonarQube如何计算总覆盖率?

m-a*_*n-o 3 javascript istanbul sonarqube sonarqube-scan sonarqube7

在此处输入图片说明

上图显示了我的一个文件夹的SonarQube覆盖率,但是如果您对该文件夹中所有文件的百分比取平均值,则该百分比为49%,而SonarQube将显示31.4%。如果不采用平均值,SonarQube如何计算总体覆盖率?对于所有文件夹,即使是最顶层的文件夹,也是如此。

Tib*_*ssy 7

总体覆盖范围计算为

Coverage = (CT + CF + LC)/(2*B + EL)
Run Code Online (Sandbox Code Playgroud)

哪里

CT =至少一次被评估为“真”的
条件CF = 至少一次被评估为“假”的条件
LC =覆盖线= lines_to_cover-uncovered_lines

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

可以在文档中找到更多详细信息

  • 总体覆盖率是使用相同的公式计算的,但计算的是目录中的所有文件。它不能只是一个简单的平均值 - 想象一下有两个文件的目录,一个小的 1 行文件被覆盖,一个巨大的文件有 1000 行未覆盖 - 简单的平均值将是 50% 的整体覆盖率,这会产生误导 (2认同)