Jenkins - Publish Coverage Report

Hein_nieH

Bekanntes Mitglied
Hallo,

ich nutze Jenkins 2.249.3 und habe das cobertura plugin installiert.
Die coverage.xml wird auch erzeugt.

Nun möchte ich mir das Ergebnis gerne anzeigen lassen.
Dazu habe ich diverse Beiträge gegurgelt.
Es soll in Jenkins in der Konfiguration des Projektes unter
Post-Build-Aktions eine Checkbox "Publish coverage report" geben.
Bei der von mir verwendeten Jenkins-Version scheint das nicht der Fall zu sein.
Hat jemand eine Idee wie ich den Coverage Report in Jenkins anzeigen kann?

Gruss Hein_nieH
 

Hein_nieH

Bekanntes Mitglied
Kannst du mal einen Screenshot des Dropdowns bei Post-Build-Aktions zeigen?

Moinsen,

ich habe mal ein Screenshot von den Einstellungen rangehängt.
Ich finde leider keine Option, um den Button zur Darstellung der Testabdeckung anzuzeigen.
Langsam beginne ich an mir selbst zu zweifeln :rolleyes:

Gruss Hein_ nieH
 

Anhänge

  • Jenkins_Einstellungen.pdf
    138,9 KB · Aufrufe: 7

Hein_nieH

Bekanntes Mitglied
Hier noch eine ergänzende Info von der Konsolenausgabe.
Die vorletzte Zeile macht mich stutzig :oops:

[INFO] Instrumentation was successful.
[INFO] NOT adding cobertura ser file to attached artifacts list.
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ Git-Test ---
[INFO] Using 'Cp1252' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory C:\Users\E7470\Documents\GitRepository\Git-Test\src\test\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.8.0:testCompile (default-testCompile) @ Git-Test ---
[INFO] No sources to compile
[INFO]
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ Git-Test ---
[INFO] No tests to run.
[INFO]
[INFO] <<< cobertura-maven-plugin:2.5.1:cobertura (default-cli) < [cobertura]test @ Git-Test <<<
[INFO]
[INFO]
[INFO] --- cobertura-maven-plugin:2.5.1:cobertura (default-cli) @ Git-Test ---
[INFO] Cobertura 1.9.4.1 - GNU GPL License (NO WARRANTY) - See COPYRIGHT file
Cobertura: Loaded information on 1 classes.
Report time: 55ms

[INFO] Cobertura Report generation was successful.
[INFO] Cobertura 1.9.4.1 - GNU GPL License (NO WARRANTY) - See COPYRIGHT file
Cobertura: Loaded information on 1 classes.
Report time: 116ms

[INFO] Cobertura Report generation was successful.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.020 s
[INFO] Finished at: 2020-12-25T10:55:13+01:00
[INFO] ------------------------------------------------------------------------
Publishing Coverage report....
No reports were found :oops:
Finished: SUCCESS
Vielleicht hat jemand eine Idee ...
Gruss Hein_nieH
 

LimDul

Top Contributor
Wenn keine Tests ausgeführt werden, gibt es keine Coverage.

Was passiert den, wenn du mvn test auf der Konsole ausführst? Wie sehen deine Tests aus? Liegen die src/test/java, heißen Test am Ende und sind Junit Tests?
 

Hein_nieH

Bekanntes Mitglied
Wenn keine Tests ausgeführt werden, gibt es keine Coverage.

Hallo,

ich habe zwei Tests eingebaut.
Eine coverage.xml wird auch erzeugt.

Nach meiner Logik sollte Jenkins dann auch den Report anzeigen. Und genau das bekomme ich nicht hin ☹️
So schön wie das im Buch "Jenkins - The definitive guide" erklärt ist klappt es bei mir leider nicht 😬

Gruss Hein_nieH
 

Anhänge

  • xx1.pdf
    50,7 KB · Aufrufe: 4
  • x2.pdf
    85,5 KB · Aufrufe: 4

mrBrown

Super-Moderator
Mitarbeiter
Also laut der Log-Ausgabe werden keine Tests ausgeführt.


Wo liegt denn der generierte Cobertura-Report? Bin mir nicht sicher, ob der Pfad mit Site passt
 

LimDul

Top Contributor
Ich bin mir nicht sicher, ob die Angabe mit \ im Pfad in Jenkins zum Report richtig ist oder doch entweder der normale / oder doppelte Backslashes hin müssen - würde ich mal probieren.
 

mrBrown

Super-Moderator
Mitarbeiter
In normalen Pfaden gehen (unter windows) sowohl slash als auch backslash, aber in dem Pattern könnte der Backslash falsch sein
 

mrBrown

Super-Moderator
Mitarbeiter
Zumindest würde ich in dem Report File Path mal den normalen Schrägstrich versuchen. Das ist dort kein "normaler" Pfad, kann sein, dass deshalb der Backslash Probleme macht.

Allerdings: dein Log sagt, dass keine Tests ausgeführt wurden. Das solltest du als erstes mal fixen.


Nach meiner Logik sollte Jenkins dann auch den Report anzeigen. Und genau das bekomme ich nicht hin ☹️
So schön wie das im Buch "Jenkins - The definitive guide" erklärt ist klappt es bei mir leider nicht 😬
Das Buch ist vermutlich ein paar Jahre alt, seit dem gab es unzählige Jenkins und Plugin-Updates – da ist es nicht überraschend, dass es völlig anders aussieht :)
Die Checkbox gibt es nicht mehr, das Auswählen in dem Dropdown-Menü reicht aus.
 

mrBrown

Super-Moderator
Mitarbeiter
Und, was noch dazu kommt: Cobertura ist quasi tot, da gab es seit 5(?) Jahren kein neues Release, das wird also mit allem neuerem Code nicht mehr laufen.
 

Hein_nieH

Bekanntes Mitglied
Hallo,

habe tatsächlich in der pom einen Pfad falsch deklariert.
Jetzt werden die Tests auch durchgeführt.


Running as SYSTEM
Baue in Arbeitsbereich C:\Windows\system32\config\systemprofile\AppData\Local\Jenkins\.jenkins\workspace\Test_Git_Jenkins_x
The recommended git tool is: NONE
No credentials specified
> C:\Program Files (x86)\Git\bin\git.exe rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
> C:\Program Files (x86)\Git\bin\git.exe config remote.origin.url C:\Users\E7470\Documents\GitRepository\ # timeout=10
Fetching upstream changes from C:\Users\E7470\Documents\GitRepository\
> C:\Program Files (x86)\Git\bin\git.exe --version # timeout=10
> git --version # 'git version 2.29.2.windows.2'
> C:\Program Files (x86)\Git\bin\git.exe fetch --tags --force --progress -- C:\Users\E7470\Documents\GitRepository\ +refs/heads/*:refs/remotes/origin/* # timeout=10
> C:\Program Files (x86)\Git\bin\git.exe rev-parse "refs/remotes/origin/master^{commit}" # timeout=10
Checking out Revision 65d5c32e5cfdf8f8480ca80ed39ce5eaa7d1b844 (refs/remotes/origin/master)
> C:\Program Files (x86)\Git\bin\git.exe config core.sparsecheckout # timeout=10
> C:\Program Files (x86)\Git\bin\git.exe checkout -f 65d5c32e5cfdf8f8480ca80ed39ce5eaa7d1b844 # timeout=10
Commit message: "Test xxx"
> C:\Program Files (x86)\Git\bin\git.exe rev-list --no-walk 65d5c32e5cfdf8f8480ca80ed39ce5eaa7d1b844 # timeout=10
[Test_Git_Jenkins_x] $ cmd.exe /C "mvn -f C:\Users\E7470\Documents\GitRepository\Git-Test\pom_Jenkins.xml cobertura:cobertura && exit %%ERRORLEVEL%%"
[INFO] Scanning for projects...
[INFO]
[INFO] -------------------------< Git-Test:Git-Test >--------------------------
[INFO] Building Git-Test 0.0.1-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] >>> cobertura-maven-plugin:2.5.1:cobertura (default-cli) > [cobertura]test @ Git-Test >>>
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ Git-Test ---
[INFO] Using 'Cp1252' encoding to copy filtered resources.
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.8.0:compile (default-compile) @ Git-Test ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 2 source files to C:\Users\E7470\Documents\GitRepository\Git-Test\target\main
[INFO]
[INFO] --- cobertura-maven-plugin:2.5.1:instrument (default-cli) @ Git-Test ---
[INFO] Cobertura 1.9.4.1 - GNU GPL License (NO WARRANTY) - See COPYRIGHT file
Cobertura: Loaded information on 1 classes.
Instrumenting 2 files to C:\Users\E7470\Documents\GitRepository\Git-Test\target\generated-classes\cobertura
Cobertura: Saved information on 1 classes.
Instrument time: 69ms

[INFO] Instrumentation was successful.
[INFO] NOT adding cobertura ser file to attached artifacts list.
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ Git-Test ---
[INFO] Using 'Cp1252' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory C:\Users\E7470\Documents\GitRepository\Git-Test\src\test\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.8.0:testCompile (default-testCompile) @ Git-Test ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 2 source files to C:\Users\E7470\Documents\GitRepository\Git-Test\target\test
[INFO]
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ Git-Test ---
[INFO] Surefire report directory: C:\Users\E7470\Documents\GitRepository\Git-Test\target\surefire-reports

-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running test.de.volkerPutzar.HalloWeltTest
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.056 sec

Results :

Tests run: 2, Failures: 0, Errors: 0, Skipped: 0

[INFO]
[INFO] <<< cobertura-maven-plugin:2.5.1:cobertura (default-cli) < [cobertura]test @ Git-Test <<<
[INFO]
[INFO]
[INFO] --- cobertura-maven-plugin:2.5.1:cobertura (default-cli) @ Git-Test ---
[INFO] Cobertura 1.9.4.1 - GNU GPL License (NO WARRANTY) - See COPYRIGHT file
Cobertura: Loaded information on 1 classes.
Report time: 45ms

[INFO] Cobertura Report generation was successful.
[INFO] Cobertura 1.9.4.1 - GNU GPL License (NO WARRANTY) - See COPYRIGHT file
Cobertura: Loaded information on 1 classes.
Report time: 116ms

[INFO] Cobertura Report generation was successful.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.528 s
[INFO] Finished at: 2020-12-25T13:45:06+01:00
[INFO] ------------------------------------------------------------------------
Publishing Coverage report....
No reports were found
Finished: SUCCESS
 

Hein_nieH

Bekanntes Mitglied
Ich bin mir nicht sicher, ob die Angabe mit \ im Pfad in Jenkins zum Report richtig ist oder doch entweder der normale / oder doppelte Backslashes hin müssen - würde ich mal probieren.

Hallo,

das Zeichen \ wird von Jenkins automatisch gesetzt.
Gruss Hein_neiH
 

Hein_nieH

Bekanntes Mitglied
So ich bin durch Experimentieren jetzt einen Schritt weiter gekommen.
Dir Ursache, dass der von cobertura erzeugte Report-File in Jenkins nicht angezeigt wurde liegt darin, dass der Report File (coverage.xml)
- zwar im Repository ( C:\Users\E7470\Documents\GitRepository\Git-Test ) im Unterverzeichnis Target-site-cobatrua-coverage.xml erzeugt wird
- jedoch nicht im workspace ( C:\Windows\SysWOW64\config\systemprofile\AppData\Local\Jenkins\.jenkins\workspace\Test_Git_Jenkins_x\Git-Test)
von Jenkins
Im Workspace gibt es nur den Subfolder "src".

Ich Habe den Subfolder target (und alles darunter) vom Repository in den Workspace kopiert (Option aufräumen abgeschaltet) und dann kam in Jenkins auch der Button zum Anzeigen des Coverage-Report zum vorschein.

Habe jetzt im pom.xml für cobertura mit dem Tag "outputDirectory" den Ausgabeort auf den workspace gesetzt und nun funktioniert es.
Es wäre schön gewesen, wenn es ohne dieses workarround geklappt hätte.

Gruss Hein
 

mrBrown

Super-Moderator
Mitarbeiter
Du solltest niemals den Workspace anfassen und selber darin irgendwas verändern, das wird vom Job angelegt und sollte auch nur durch diesen verändert werden – wenn das nötig ist, ist der Job falsch konfiguriert.

Auch solltest du niemals in der pom absolute Pfade angeben, die sollten immer relativ zum und im Projekt- oder Build-Verzeichnis sein – auch da gilt, wenn man da absolute Pfade oder Pfade außerhalb "über" dem Projektverzeichnis angeben muss, hat man irgendwo was falsch gemacht.

Die Nutzung eines einzelnen rein lokalen Repos würde ich da auch sehr kritisch sehen – das führt nur zu komischen "Fehlern" und noch komischeren "Work-Arounds", die bei richtiger Nutzung nicht auftreten und/oder nicht möglich sind, aktuell lernst du da nur Dinge die falsch sind.


Du kannst mal deine gesamte pom.xml und die gesamte Job-Konfiguration zeigen, irgendwas scheint da sehr verdreht zu sein.
 

mrBrown

Super-Moderator
Mitarbeiter
Alternativ kann ich später auch mal 'ne Anleitung schreiben, wie man das gesamte Projekt von git über Maven bis Jenkins aufsetzt, das funktioniert dann auch mit den neusten Versionen der ganzen Dinge...
 

Hein_nieH

Bekanntes Mitglied
... das mit der Anleitung wäre nicht schlecht.
Ich bin sicher, das es auch andere Forenmitglieder interessieren würde.

Gruss Hein_nieH
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Jenkins Build mit git Hashwert Tools - Maven, Gradle, Ant & mehr 2
H Jenkins aktulles Checkstyle Plugin Tools - Maven, Gradle, Ant & mehr 2
OnDemand Jenkins Pipeline Build > Send Info Jira Tools - Maven, Gradle, Ant & mehr 3
H Nutzung einer eigenen checkstyle Konfiguration in Jenkins - Grundsätzliches Tools - Maven, Gradle, Ant & mehr 2
H Jenkins keine Tests gefunden - aber in Maven Tools - Maven, Gradle, Ant & mehr 30
P Mit Maven einen spezifischen Branch nach Tag-Parameter erstellen (in Jenkins-Job) Tools - Maven, Gradle, Ant & mehr 3
H Jenkins - maven-jar-plugin - kein jar-file Tools - Maven, Gradle, Ant & mehr 38
H Maven Verbindung Java Projekt und Jenkins Build job Tools - Maven, Gradle, Ant & mehr 21
H Maven Bekomme cobertura in jenkins nicht zu laufen :-( Tools - Maven, Gradle, Ant & mehr 1
Thallius Jenkins -> git to zip? Tools - Maven, Gradle, Ant & mehr 5
Thallius Jenkins nur zip file erstellen? Tools - Maven, Gradle, Ant & mehr 3
G Maven Continious Integration mit Jenkins, Maven und Nexus - wie richtig? Tools - Maven, Gradle, Ant & mehr 1
B Jenkins Emal-Versand Tools - Maven, Gradle, Ant & mehr 5
K Subversion svn & Jenkins - Änderungen werden nicht angezeigt Tools - Maven, Gradle, Ant & mehr 4
Y Jenkins Zeitsteuerung Tools - Maven, Gradle, Ant & mehr 3
M Jenkins Rechte-Verwaltung Tools - Maven, Gradle, Ant & mehr 3
schalentier Probleme mit Jenkins Tools - Maven, Gradle, Ant & mehr 7
K Jenkins Konfiguration für einen multi-module Maven Projekt Tools - Maven, Gradle, Ant & mehr 2
G Probleme Jenkins mit Maven einzurichten Tools - Maven, Gradle, Ant & mehr 4
G Ant Hudson/Jenkins, Ant und JUnit unter einen Hut bringen Tools - Maven, Gradle, Ant & mehr 12
G Jenkins Userverwaltung Tools - Maven, Gradle, Ant & mehr 7
G Maven JMeter und Jenkins Tools - Maven, Gradle, Ant & mehr 1
X Maven Jenkins/maven - abhängige Projekte automatisch bauen Tools - Maven, Gradle, Ant & mehr 7
G Jenkins Task starten Tools - Maven, Gradle, Ant & mehr 16
N Required filename-based automodules detected. Please don't publish this project to a public artifact repository Tools - Maven, Gradle, Ant & mehr 9

Ähnliche Java Themen


Oben