Ich habe ein Groovy-Projekt mit mehreren Modulen mit Gradle. Ich habe Jacoco, Sonarqube Plugins angewendet.Wie meldet man Jacoco Groovy Code Coverage auf Sonar mit dem neuen Gradle SonarQube Plugin?
Ich war zu
- Suche build/jacoco/test.exec können. Jenkins konnte es richtig machen.
- Durchsuchen jacocoHtml mit allen Codeabdeckung Details
- Unit suchen Testergebnisse und Quellcode auf Sonarqube
Aber Code Coverage
wurde nicht Sonarqube berichtet zu werden.
Hier ist meine 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'
}
}
ich während eines Build folgenden Protokoll Aussagen beobachtet.
No binary directories defined for project core.
Project coverage is set to 0% since there is no directories with classes.
Ich habe dann versucht folgende Teilprojekte oder allprojects Zugabe und noch wurde die Abdeckung nicht zu Sonarqube berichtet.
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"
}
}
Wie kann ich die Berichterstattung über Jacoco Groovy-Code für SonarQube aktivieren?
Ich denke, Ihre Konfiguration scheint in Ordnung. Obwohl wir dies für Binärdateien verwendet haben: "$ project.buildDir.name/classes". Vielleicht könnten Sie ein längeres Snippet aus Ihrem Protokoll hinzufügen, in dem Ihr Modul und der Pfad, in dem nach der Coverage-Datei gesucht wird, aufgeführt sind. Update: Sie möchten das Sonarqube-Plugin auf den Root anwenden, ansonsten könnte es sich tatsächlich um separate Projekte handeln. – dbalakirev
Nun habe ich ein ähnliches Problem, wo für ein Projekt das funktioniert, aber nicht für das andere.Haben Sie versucht, die Konfiguration direkt auf die Root anzuwenden? – dbalakirev