我一直在努力将单元测试结果和代码覆盖率从 Jenkins 导入 SonarQube。此时,我已经验证了结果正在生成,因为它们显示在 Jenkins 的项目页面中。
sonar.properties 文件如下所示。 php 结果是使用 phpunit 创建的,代码覆盖率是使用 phpunit 和 clover 创建的。为了排除故障,我添加了 sonar.php.coverage.reportPath 和 sonar.clover.reportPath。
sonar.projectKey=projectKey
sonar.projectName=projectKey
sonar.projectVersion=1.0
sonar.language=php
sonar.sourceEncoding=UTF-8
sonar.php.tests.reportPath=report/phpunitresults.xml
sonar.php.coverage.reportPath=report/clover_code_coverage.xml
sonar.clover.reportPath=report/clover_code_coverage.xml
sonar.sources=./src/
sonar.exclusions=./src/tests/**
sonar.tests=./src/tests/
sonar.coverage.exclusions=./src/tests/**/*.php
所有结果 单元测试覆盖率 0.0% 线路覆盖 0.0%
Jenkins 构建不会产生任何错误或有助于识别结果未导入问题的有用信息。
谁能帮忙解决这个问题吗?
谢谢。
- 本
最佳答案
我的问题是,覆盖率报告是在与运行 sonar-scanner
的服务器不同的服务器上生成的,并且 clover.xml
中的绝对路径不同。
解决方案是修复路径:
replace="s|/home/bamboo/project/|`pwd`/|g"
sed -i -- $replace report/*.xml
关于php - Jenkins PHP 单元测试和代码覆盖率无法导入到 SonarQube 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31840022/