声纳不会获取测试覆盖率信息

shi*_*ike 6 gradle jacoco sonarqube

SonarQube类似,不会通过Gradle为完全覆盖的类显示每个文件的详细报告,但不会显示欺骗.

Sonar Qube版本3.7.4 Gradle版本2.1

运行gradle sonarRunner生成一个Sonar 确实拾取的文件test.exec

14:50:28.167 INFO  - Analysing D:\projname\build\jacoco\test.exec
14:50:28.265 INFO  - No information about coverage per test.
14:50:28.266 INFO  - Sensor JaCoCoSensor done: 106 ms
14:50:28.529 INFO  - Execute decorators...
14:50:29.253 INFO  - Store results in database
14:50:29.391 INFO  - ANALYSIS SUCCESSFUL, you can browse http://localhost:9000/dashboard/index/com.projname
Run Code Online (Sandbox Code Playgroud)

然而,在刷新上述项目时,它显示覆盖率为0%

单位测试覆盖率0.0%0.0%线覆盖率0.0%分支覆盖率

我已经设定

sonarRunner {
    sonarProperties {
        property 'sonar.jacoco.reportPath', 'D:\\projname\\build\\jacoco\\test.exec'
        property 'sonar.junit.reportsPath','$buildDir/test-results'
        property 'sonar.tests', "$buildDir/classes/test"
     }
}
Run Code Online (Sandbox Code Playgroud)

我试过\和正斜杠 - 它没有什么区别

有任何想法吗?

编辑

根据彼得的回答,删除了sonarProperties- 所以build.gradle基本上是

subprojects {
   apply plugin: 'java'
   apply plugin: 'eclipse'
   apply plugin: 'sonar-runner'
   apply plugin: 'jacoco'
   sourceCompatibility  = 1.7
   group = 'com.mycomp'
   version = '1.0-SNAPSHOT'

    repositories {
        mavenCentral()
    }

    dependencies {
        testCompile 'junit:junit:4.10'
    }
}
Run Code Online (Sandbox Code Playgroud)

这不会读取在D:\ projname\build\jacoco\test.exec中生成的默认exec文件

相反,它给出了消息

17:06:36.912 INFO  - Project coverage is set to 0% as no JaCoCo execution data has been dumped: D:\projname\target\jacoco.exec
Run Code Online (Sandbox Code Playgroud)

问题:文件夹名称中的空格是否会导致问题

Pet*_*ser 3

用于gradle test sonarRunner确保测试和覆盖率结果是最新的。避免在构建脚本中使用绝对路径。Groovy 仅对双引号字符串 ( "$buildDir/test-results") 执行字符串插值。如果您应用了jacocojava插件,则代码片段中显示的所有声纳属性都应该正确预配置。