2012-10-12 12 views
8

Ich habe ein Projekt in Jenkins, das ich einen JaCoCo Code Coverage Report erstellen möchte. Wenn ich jacoco:test dann jacoco:report lokal ausführen erstellt es die richtigen Dateien (.exec, .classes und Quellen) in myproject/target/scala-2.9.1/jacoco so funktioniert es.Jenkins und JaCoCo mit sbt

Wenn Sie jedoch auf jenkins bauen, erstellt dies nur das Klassenverzeichnis, was bedeutet, dass es den Code aufnimmt, aber nicht den Test, der es abdeckt, also bekomme ich 0% Codeabdeckung.

Hat jemand Jacoco mit sbt auf diese Weise arbeiten?

Antwort

0

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.

2

Ich stieß auf dasselbe Problem, als ich versuchte, ein neues Scala-Projekt zu starten. Nachdem ich eine Reihe von Pfadkonfigurationen getestet hatte, konnte ich eine Lösung finden.

Der Standardwert für Pfad zu Klassenverzeichnissen ist **/classes. Ich vermute, das Problem ist, dass das Muster target/scala-X.XX/classes/ und target/scala-X.XX/jacoco/classes/ übereinstimmen kann.

Durch Ändern des Klassenverzeichnispfads auf target/*/classes konnte das Jenkins-Plug-in mit dem Melden der korrekten Abdeckungsinformationen beginnen.

+0

Erstaunlich! Dank dieses Posts musste ich '**/target/*/classes' verwenden. – kilo

+0

Ich stehe vor dem gleichen Problem. Kannst du bitte im Detail sagen für welche Eigenschaft wir "target/*/classes" setzen müssen? –

Verwandte Themen