0

我正在尝试计算单元测试和功能测试的代码覆盖率。运行单元测试后,我生成 jacoco.exec 文件。同样,对于功能测试,我得到 jacoco-it.exec 文件。

现在我想提供这些文件作为声纳的输入,如下所示:

mvn sonar:sonar -Dsonar.jdbc.url="jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8" -Dsonar.jdbc.username=sonar -Dsonar.jdbc.password=sonar -Dsonar.host .url= http://localhost:9000 -Dsonar.jacoco.reportPath=jacoco.exec -Dsonar.jacoco.itReportPath=jacoco-it.exec

但声纳在仪表板上生成 0% 的覆盖率。有没有其他方法可以计算 jacoco.exec 文件的覆盖率,而无需提供我的源代码/二进制文件来分析它?

4

1 回答 1

0

你的 pom.xml 中 jacoco 的配置是什么?

你检查过你的报告路径吗?

来自 sonarqube 的示例代码展示了如何使用 Jacoco 进行 UT、IT 和覆盖:http: //docs.sonarqube.org/display/PLUG/Code+Coverage+by+Integration+Tests+for+Java+Project

https://github.com/SonarSource/sonar-examples/tree/master/projects/languages/java/code-coverage/combined%20ut-it/combined-ut-it-multimodule-maven-jacoco

而且我认为在 pom.xml 中设置属性比使用 -D 参数更好......

<properties>
    <!-- select JaCoCo as a coverage tool -->
    <sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin>
    <!-- force sonar to reuse reports generated during build cycle -->
    <sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
    <!-- set path for unit tests reports -->
    <sonar.jacoco.reportPath>${project.basedir}/target/jacoco-unit.exec</sonar.jacoco.reportPath>
    <!-- all modules have to use the same integration tests report file -->
    <sonar.jacoco.itReportPath>${project.basedir}/../target/jacoco-it.exec</sonar.jacoco.itReportPath>
</properties>
于 2015-06-26T09:51:12.073 回答