繁体   English   中英

如何使用新的Gradle SonarQube插件向Jason报告Jacoco Groovy代码覆盖率?

[英]How to report Jacoco Groovy code coverage to Sonar using new Gradle SonarQube plugin?

我有一个使用Gradle的多模块Groovy项目。 我应用了jacoco,sonarqube插件。

我本来可以

  1. 查找build / jacoco / test.exec。 詹金斯(Jenkins)能够做到正确。
  2. 浏览所有代码覆盖率详细信息的jacocoHtml
  3. 在SonarQube上查找单元测试结果和源代码

但是没有向SonarQube报告Code Coverage

这是我的build.gradle

plugins {
    id "org.sonarqube" version "2.0.1"
}

allprojects {
    group = 'my'
    version = '1.0-SNAPSHOT'
}

subprojects {
    apply plugin: 'groovy'
    apply plugin: "jacoco"

    dependencies {
        compile group: 'org.codehaus.groovy', name: 'groovy-all', version: '2.4.1'
        testCompile group: 'org.spockframework', name: 'spock-core', version: '1.0-groovy-2.4'
        testCompile group: 'org.assertj', name: 'assertj-core', version: '2.4.1'
    }
}

在构建期间,我观察到以下日志语句。

No binary directories defined for project core.
Project coverage is set to 0% since there is no directories with classes.

然后,我尝试将以下内容添加到子项目或所有项目中,但仍未向SonarQube报告覆盖范围。

sonarqube {
    properties {
        property "sonar.groovy.jacoco.reportPath", "${project.buildDir}/jacoco/test.exec"
        property "sonar.jacoco.reportPath", "${project.buildDir}/jacoco/test.exec"
        property "sonar.binaries", "${project.buildDir}/classes"
        property "sonar.groovy.binaries", "${project.buildDir}/classes"
    }
}

如何启用向SonarQube报告Jacoco Groovy代码覆盖率的功能?

当我同一个问题作斗争时,您可能已经看到了我的评论。

我已经找到了groovy插件的站点,该站点的报告如下:

对于根项目,sonar.groovy.binaries仅被解析一次。 在多模块项目中,该属性未在根模块上定义,而仅在叶模块上定义,这会导致缺少覆盖信息。

https://github.com/SonarQubeCommunity/sonar-groovy/issues/52

因此,即使为您的模块设置了它:

“ :: myspecialsubmodule.sonar.groovy.binaries”->“ / home / user / Projects / root-project / myspecialsubmodule / build / classes / main”

在为根设置之前,它将无法工作。

在根目录上专门设置了配置后(现在,直到问题解决),它对我有用。

property "sonar.groovy.binaries", "${project.buildDir.name}${File.separator}classes"

我将跟踪github问题,以了解何时可以删除此替代方法。

暂无
暂无

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM