2017-02-26 2 views
0

Beim Versuch, jacoco in meinem Großprojekt auszuführen, erhalte ich Ausnahmen. Ich habe folgende Abhängigkeiten hinzugefügt:Beim Versuch, "grddle test jacoco" in gitbash auszuführen, erhalte ich TestExecutionException, NoClassDefFoundError, ClassNotFoundException

compile "org.jacoco:org.jacoco.report:0.7.8" 
    compile "org.jacoco:org.jacoco.core:0.7.8" 
    compile "org.ow2.asm:asm-all:5.1" 

Ich habe auch versucht mit verschiedenen Optionen wie providedCompile, testCompile auch. Ich bekomme diese Ausnahme, während ich versuche, "gridle test jacoco" in Gitbash auszuführen.

Ausnahmen:

org.gralde.api.tasks: TaskExecutionException: Exception failed for task:'practice-app:jacocoTestReport'

Caused by: java.lang.NoClassDefFoundError: org/jacoco/report/IReportVistor

Caused by: java.lang.ClassNotFoundException: org.jacoco.report.IReportVisitor

ich auch andere Prüfungen wie jacoco Gläser in meinem lokalen gradle Repo usw.

Antwort

0

Ich hatte auch in einem unserem gradle Projekt während Jacoco Integration verifiziert erleben das ähnliche Problem. Das Plugin brachte die benötigten Gläser irgendwie nicht mit. Dann versuchte ich alle Abhängigkeiten manuell hinzuzufügen sagen: -

compile "org.jacoco:org.jacoco.report:0.7.8" 
compile "org.jacoco:org.jacoco.core:0.7.8" 
compile "org.ow2.asm:asm-all:0.7.8" 

etc., aber dieser Trick auch nicht funktionierte. Immer noch Klassenunübliche Ausnahme gegen Jacoco-Gläser. Dann, nach einer Menge getroffen & Versuch, lernte ich über jacocoClasspath kennen. Ich habe die folgenden:

1) Erste Jacoco Version

jacoco { 
    toolVersion = "0.7.8+" 
} 

Wie haben einige Inkompatibilität Version Ausgabe geändert (Erinnert nicht den genauen Fehler/Ausnahme).

2) Anschließend wurde der folgende Code in build.gradle hinzugefügt, um sicherzustellen, dass die erforderlichen Abhängigkeiten im jacoco-Klassenpfad vorhanden sind.

jacocoTestReport.doFirst { 
    configurations.testRuntime.each { jacocoClasspath += files(it); } 
} 

Hinweise: 1) doFirst wird ausgeführt, bevor jacoco Aufgabe ausgeführt wird.

2) Ich habe gerade das, was in meiner Runtime vorhanden ist, zum jacocoClasspath hinzugefügt. Sie können den Code verfeinern, um dem jacoco-Klassenpfad nur die erforderlichen jars hinzuzufügen.

Verwandte Themen