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

时间:2019-08-18 07:08:50

标签: java gradle sonarqube code-coverage jacoco

我正在使用sonarqube + jacoco进行代码覆盖,在下面的目录结构中有用于Java代码的junit测试用例。

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

我想要在声纳仪表板上进行代码覆盖,并且我正在使用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"

  }
}

我正在运行gradle sonarqube

我不知道我在哪里做错了?是否可以帮助获得用Java代码编写的测试用例。

1 个答案:

答案 0 :(得分:0)

在我看来,Jacoco测试报告是在一个目录中生成的,但是SoanrQube被配置为可以查看另一个目录。这是您保存报告的目录:

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

这是Sonar配置,用于查找Jacoco结果:

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

缺少customJacocoReportDir个目录