简体   繁体   English

sonarqube+jacoco+junit 代码覆盖率在 sonarqube 仪表板中显示为 0%

[英]sonarqube+jacoco+junit code coverage showing 0% in sonarqube dashboard

I am using sonarqube + jacoco for codecoverage, i have junit test case for my java code in below dir structure.我正在使用 sonarqube + jacoco 进行代码覆盖,我的 java 代码在下面的 dir 结构中有 junit 测试用例。

src/main/java/code/abc.java
src/main/test/code/Testabc.java

I want a code coverage on sonarqube dashboard and i am using gradle for the same.我想要 sonarqube 仪表板的代码覆盖率,并且我正在使用 gradle 进行相同的操作。

apply plugin: "java"
apply plugin: "org.sonarqube"
apply plugin: "jacoco"

jacoco {
toolVersion = "0.7.9"
reportsDir = file("${project.buildDir}/jacoco/customJacocoReportDir")
}

sonarqube {
    properties {
        property "sonar.sources", "."
        property "sonar.projectName", "javacode"
        property "sonar.projectKey", "javacode"
        property "sonar.java.coveragePlugin", "jacoco"
        property "sonar.java.binaries", "/data/tmp/env/"
        property "sonar.jacoco.reportPath", "${project.buildDir}/jacoco/test.exec"
    }
}

buildscript {

   repositories {
    maven {
      url "https://plugins.gradle.org/m2/"
    }
  }
  dependencies {
    classpath "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.7"

  }
}

I am running gradle sonarqube我正在运行gradle sonarqube

I dont know where i am doing wrong?我不知道我在哪里做错了? if any one can help to get the coverage of test case written from java code.如果有人可以帮助获得从 java 代码编写的测试用例的覆盖率。

It seems to me, that Jacoco test reports are generated in one directory, but SoanrQube is configured to look into another one.在我看来,Jacoco 测试报告是在一个目录中生成的,但 SoanrQube 被配置为查看另一个目录。 Here is the directory you save reports:这是您保存报告的目录:

reportsDir = file("${project.buildDir}/jacoco/customJacocoReportDir")

and here is Sonar configuration to look up Jacoco results:这是用于查找 Jacoco 结果的声纳配置:

property "sonar.jacoco.reportPath", "${project.buildDir}/jacoco/test.exec"

There is customJacocoReportDir directory missed customJacocoReportDir目录

Here's the minimal config that is working with这是正在使用的最小配置

  • gradle 7.5 gradle 7.5
  • sonarqube gradle plugin 3.3 sonarqube gradle 插件 3.3
  • jacoco latest version雅可可最新版

Gradle snippet: Gradle 片段:

apply plugin: "org.sonarqube"
apply plugin: "jacoco"

// jacoco task config not needed since I'm using the defaults (latest version, default dir)
// jacoco {
//     toolVersion = "0.7.9"
//     reportsDir = file("${project.buildDir}/jacoco/customJacocoReportDir")
// }

sonarqube {
    properties {
        property "sonar.sources", "."
        property "sonar.projectName", "javacode"
        property "sonar.projectKey", "javacode"
        property "sonar.java.coveragePlugin", "jacoco"
        property "sonar.java.binaries", "/data/tmp/env/"
//      no need to define sonar.jacoco.reportPaths or sonar.coverage.jacoco.xmlReportPaths as sonarqube 
//      finds the xml report in the default location (build/reports/jacoco/test/jacocoTestReport.xml)
//      property "sonar.jacoco.reportPath", "${project.buildDir}/jacoco/test.exec"
    }
}

jacocoTestReport {
    reports {
        xml.enabled true   // to be sure xml report is created (sonarqube knows jacoco's default report location)
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 使用 Gradle 的 Sonarqube 8 的 Jacoco 代码覆盖率 - Jacoco code coverage for Sonarqube 8 using Gradle SonarQube + Jacoco覆盖率差异 - SonarQube + Jacoco Coverage Discrepancies SonarQube 分析显示代码覆盖率 0 - SonarQube Analysis showing code coverage 0 在Sonarqube仪表板中包含JMockit Coverage - Include JMockit Coverage in Sonarqube dashboard SonarQube + Maven + JaCoCo + GitLab CI: Sonar started to show 0% code coverage after upgrading to SonarQube 7.9.2 - SonarQube + Maven + JaCoCo + GitLab CI: Sonar started to show 0% code coverage after upgrading to SonarQube 7.9.2 使用 JaCoCo 插件配置分析 Maven 插件后,SonarQube 服务器上缺少 JaCoCo 代码覆盖率报告 - Missing JaCoCo code coverage report on SonarQube server after analyzing Maven plugin with JaCoCo plugin configuration SonarQube不接受外部生成的JaCoCo IT报告报告 - SonarQube not accepting externally generated JaCoCo report for IT coverage Sonarqube测试覆盖率过滤器(Jacoco) - Sonarqube test-coverage filter (jacoco) 在SonarQube +报告中未显示的相关模块中的汇总覆盖范围或覆盖范围由Jacoco生成 - Aggregated Coverage or Coverage in the dependent modules not shown in SonarQube + Reports are generated by Jacoco Manuel在Sonarqube上测试代码覆盖率 - Manuel Tests Code coverage on Sonarqube
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM