Kann jemand eine Gradle-Datei für Java-jacoco-Bericht konfigurieren, die Codecoverage von mehr als einem Gradle Submodul enthalten?Gradle Jacaco Abdeckung Bericht mit mehr als einem Submodul (en)?
mein aktueller Ansatz zeigt nur Code Coverage des aktuellen Submoduls, aber nicht Codecoverage eines Geschwister-Submoduls.
Ich habe diese Projektstruktur
- build.gradle (1)
- corelib/
- build.gradle (2)
- src/main/java/package/Core.java
- extlib/
- build.gradle (3)
- src/main/java/package/Ext.java
- src/test/java/package/Integrationtest.java
wenn ich gradlew :extlib:check :extlib:jacocoTestReport
der junit-Test „Integrationtest.java“ execute ausgeführt wird und eine Testabdeckung Bericht erzeugt, der nicht wie Testabdeckung Core.java für corelib Klassen enthält
Das Ergebnis sollte die Testabdeckung von Ext.java und Core.java
ich schon gelesen
umfassen- https://docs.gradle.org/current/userguide/jacoco_plugin.html
- und Filter JaCoCo coverage reports with Gradle
aber keine Hinweise
hier ist Inhalt der gradle Dateien
// root build.gradle (1)
// Top-level build file where you can add configuration options
// common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.1.0'
}
}
allprojects {
repositories {
jcenter()
}
}
// build.gradle (2) subproject build file for corelib.
apply plugin: 'java'
apply plugin: 'jacoco'
dependencies {
}
jacocoTestReport {
reports {
xml.enabled true
html.enabled true
}
}
// build.gradle (3) subproject build file for extlib.
apply plugin: 'java'
apply plugin: 'jacoco'
dependencies {
compile project(':corelib')
testCompile 'junit:junit:4.11'
// this does not compile
// jacocoTestReport project(':pixymeta-core-lib')
}
jacocoTestReport {
reports {
xml.enabled true
html.enabled true
}
}
// workaround because android-studio does not make the test resources available
// see https://code.google.com/p/android/issues/detail?id=64887#c13
task copyTestResources(type: Copy) {
from sourceSets.test.resources
into sourceSets.test.output.classesDir
}
processTestResources.dependsOn copyTestResources
[Update 2016.08.01]
dank @Benjamin Muschko i auch in der Wurzel gradle Datei versucht
// https://discuss.gradle.org/t/merge-jacoco-coverage-reports-for-multiproject-setups/12100/6
// https://docs.gradle.org/current/dsl/org.gradle.testing.jacoco.tasks.JacocoMerge.html
task jacocoMerge(type: JacocoMerge) {
subprojects.each { subproject ->
executionData subproject.tasks.withType(Test)
}
}
bekam aber Fehlermeldung (mit gradle- 2,14)
* What went wrong:
Some problems were found with the configuration of task ':jacocoMerge'.
> No value has been specified for property 'jacocoClasspath'.
> No value has been specified for property 'executionData'.
> No value has been specified for property 'destinationFile'.
es auch die gradle Plugin ist https://github.com/paveldudka/JacocoEverywhere, wo ich für Mulit-Submodul Unterstützung gebeten haben https://github.com/paveldudka/JacocoEverywhere/issues/16
[Update 2016.08.01] fand ich eine Lösung auf Basis von Arbeits https://github.com/palantir/gradle-jacoco-coverage
unter
meine eigene Antwort Siehe
Hat jemand Erfahrung mit [gradle-3.4 + -jacoco-coverage] (https://github.com/palantir/gradle-jacoco-coverage), wenn die neue Verify-Funktion jacoco coverage report über mehr als ein Submodul erlaubt? – k3b