SonarQube 5与JaCoCo 0.0%覆盖率,为什么?

时间:2015-03-17 16:57:18

标签: sonarqube sonarqube-5.0

自从我们的项目将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 - 报告路径未找到:/tmp/testresults.xml”路径是正确的,我不知道为什么会出现此警告。

SonarQube的覆盖范围是否需要二进制文件?我没有编译代码。

或者,在我运行声纳 - 跑步者之后,SonarQube显示0%覆盖率的原因是什么?

1 个答案:

答案 0 :(得分:1)

首先:/tmp/testresults.xml这与覆盖范围无关,但导入测试结果(测试次数,成功测试)。

  

SonarQube的覆盖范围是否需要二进制文件?我没有编译代码。

你的问题的答案在于这个讯问:是的。 为了在读取.exec JaCoCo报告文件时计算覆盖率,JaCoCo分析器(在java插件中使用)需要.class文件输入流,因此需要字节码来导入JaCoCo报告。因此,请编译您的项目并通过sonar.java.binaries属性提供类文件。

相关问题