Sonarqube 6.2和PHP插件

时间:2017-01-21 18:57:42

标签: php sonarqube code-analysis static-analysis

最近我已经将SonarQube安装到6.2版本。我注意到代码覆盖率指标已大幅下降。在覆盖范围细节中,我可以看到具有@codeCoverageIgnore注释或接口的文件具有未覆盖的行。看起来Sonar根据sonar.sourcessonar-project.properties所指向的目录中每所有文件的覆盖行数(来自PHPUnit' xml输出日志)计算覆盖率。

在我的服务器上安装SonarQube之前,我一直在使用官方Docker镜像上运行的6.1版本,它的工作方式就像魅力一样。

我发现没有与此类问题相关的公开问题/自动收报机/类似问题,所以也许我做错了。

详细说明:

  • PHPUnit 5.7.5正在运行命令:

phpunit --coverage-clover=build/phpunit.coverage.xml --log-junit=build/phpunit.log.xml

  • SonarQube 6.2(从官方apt存储库安装)
  • SonarQube Scanner 2.8
  • SonarQube的PHP插件2.9.2.1744

1 个答案:

答案 0 :(得分:1)

您的覆盖率数字随SonarQube 6.2和SonarPHP 2.9.2而下降,因为版本(及以上版本)的组合提供“可执行行”数据,因此覆盖率报告中未包含的文件的覆盖范围可以“强制为零” 。

即。 SonarQube 6.2旨在让您更准确地了解您的真实覆盖率。在此之前,它必须依赖于覆盖引擎提供的文件和行列表,并且许多覆盖引擎只是忽略(即不包括在他们的报告中)没有测试任何行的文件。现在,在这种情况下,代码分析器SonarPHP正在为覆盖引擎忽略的所有文件提供可执行行列表,因此您的未覆盖行数比例较大,因此覆盖率百分比下降。

如果您希望您的保险号码恢复原状,您有两种选择:

  1. 写更多测试! ;-p
  2. 为未覆盖的文件添加exclusions