最近我已经将SonarQube安装到6.2版本。我注意到代码覆盖率指标已大幅下降。在覆盖范围细节中,我可以看到具有@codeCoverageIgnore
注释或接口的文件具有未覆盖的行。看起来Sonar根据sonar.sources
中sonar-project.properties
所指向的目录中每所有文件的覆盖行数(来自PHPUnit' xml输出日志)计算覆盖率。
在我的服务器上安装SonarQube之前,我一直在使用官方Docker镜像上运行的6.1版本,它的工作方式就像魅力一样。
我发现没有与此类问题相关的公开问题/自动收报机/类似问题,所以也许我做错了。
详细说明:
phpunit --coverage-clover=build/phpunit.coverage.xml --log-junit=build/phpunit.log.xml
答案 0 :(得分:1)
您的覆盖率数字随SonarQube 6.2和SonarPHP 2.9.2而下降,因为版本(及以上版本)的组合提供“可执行行”数据,因此覆盖率报告中未包含的文件的覆盖范围可以“强制为零” 。
即。 SonarQube 6.2旨在让您更准确地了解您的真实覆盖率。在此之前,它必须依赖于覆盖引擎提供的文件和行列表,并且许多覆盖引擎只是忽略(即不包括在他们的报告中)没有测试任何行的文件。现在,在这种情况下,代码分析器SonarPHP正在为覆盖引擎忽略的所有文件提供可执行行列表,因此您的未覆盖行数比例较大,因此覆盖率百分比下降。
如果您希望您的保险号码恢复原状,您有两种选择: