gradle - Sonar 不获取测试覆盖率信息

标签 gradle sonarqube jacoco

类似于 SonarQube does not display detailed report per file for fully covered classes via Gradle但不是骗子。

Sonar Qube 版本 3.7.4
Gradle 版本 2.1

运行 gradle sonarRunner生成文件 test.exec 其中 Sonar 捡起

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

然而,在刷新上述项目时,它显示的覆盖率为 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"
     }
}

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

有任何想法吗?

编辑

根据彼得的回答,删除了 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'
    }
}

这不会读取在 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

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

最佳答案

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

关于gradle - Sonar 不获取测试覆盖率信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26863193/

相关文章:

.net-core - Azure Devops + Coverlet + SonarQube 显示 0%

java - 在根项目中找不到项目 'sonarqube-Dsonar.host.url=http'

android - Nativescript命令gradlew.bat失败错误

使用 AndroidStudio 调试时,Android SDK 调试信息错误?

sonarqube - Sonar 和 Apache Builder

android - 如何使用Azure DevOps在Gradle Kotlin中生成和发布代码覆盖率?

java - 无法运行 jacoco 代码覆盖工具

java - 如何计算与 Web 应用程序代码相关的 selenium 测试的代码覆盖率

java - 找不到spring-boot-2.3.0.BUILD-SNAPSHOT.jar错误

从 jar 运行时,Spring-boot jersey 崩溃,找不到文件异常。从源代码运行它没有任何问题