自从为我们的项目将 JaCoCo 报告集成到 SonarQube 5.0.1 中以来,我一直在努力。我总是在 SonarQube 中阅读 0.0% 的覆盖率。
TeamCity 9 生成了一个 testresults.xml 和一个 jacoco.exec 文件,我将它们用于声纳运行器。TeamCity 显示覆盖率,因此 exec 文件接缝没问题。Java 代码分析基本上在 SonarQube(FindBugs、PMD 等)中工作。
我有一个仍然使用 Ant 构建的多模块项目。“核心”项目的单元测试位于一个名为“junit”的自己的项目中。使用了 JUnit 4 库,但测试仍然是 JUnit 3。
这些是我在名为“sonar-project.properties”的文件中使用的相关(?)属性:
core.sonar.tests = ../junit/src
core.sonar.junit.reportsPath = /tmp/testresults.xml
core.sonar.core.coveragePlugin = jacoco
core.sonar.jacoco.reportMissing.force.zero = false
core.sonar.jacoco.reportPath = /tmp/jacoco.exec
属性前缀“core”是因为他们正在配置模块“core”。
路径应该是正确的。但它说:“WARN - Reports path not found: /tmp/testresults.xml” 路径是正确的,我不知道为什么会出现这个警告。
我需要二进制文件来覆盖 SonarQube 吗?我还没有编译代码。
或者在我运行 sonar-runner 后 SonarQube 显示 0% 覆盖率的原因是什么?