Ich habe ein Projekt in Jenkins, mit dem ich einen JaCoCo Code Coverage Report erstellen möchte.
Wenn ich jacoco:test
und dann jacoco:report
lokal ausführe, erstellt es die richtigen Dateien (.exec, .classes und sources) in myproject/target/scala-2.9.1/jacoco
, so dass es funktioniert.
Wenn Sie jedoch auf jenkins aufbauen, wird nur das Klassenverzeichnis erstellt, was bedeutet, dass es den Code aufnimmt, aber nicht den Test, der es abdeckt, sodass ich eine Codeabdeckung von 0% erhalte.
Hat jemand auf diese Weise Jacoco mit sbt arbeiten?
Ich stieß auf dasselbe Problem, als ich versuchte, ein neues Scala-Projekt zu starten. Nachdem ich eine Reihe von Pfadkonfigurationen ausprobiert hatte, konnte ich eine Lösung finden.
Der Standardwert für Pfad zu Klassenverzeichnissen ist **/classes
. Ich vermute, das Problem ist, dass das Muster die Übereinstimmung von target/scala-X.XX/classes/
und target/scala-X.XX/jacoco/classes/
ermöglicht.
Durch das Ändern des Klassenverzeichnispfads in target/*/classes
konnte das Jenkins-Plug-in mit dem Berichten der richtigen Coverage-Informationen beginnen.
Sie haben nicht viele Informationen über Ihre Jenkins-Jobkonfiguration angegeben, daher mache ich einige Annahmen, aber Sie können mehrere Build-Schritte in einem Jenkins-Job hinzufügen / ausführen. Build-Schritte führen Dinge wie Run Maven oder führen Sie ein beliebiges Skript.
Der erste Build-Schritt kann ein Maven-Build-Schritt sein, der "jacoco: test jacoco: report" ausführt, um Jacoco auszuführen, und dann kann der zweite Build-Schritt sein, was auch immer Sie nach der Datei jacoco.exec suchen.
Tags und Links java jenkins code-coverage jacoco