簡體   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