2017-09-22 7 views
2

Jacoco montrant la couverture de 0% dans les rapports de jenkins mais quand je courais la même commande dans le système local, jacoco génère des rapports correctement. J'utilise la commande suivante:code Jacoco Rapport couverture Affiche 0 couverture dans le plugin Jenkins

mvn -s xyz/settings.xml -f xyz/xyz/pom.xml installation propre org.jacoco: jacoco-maven-plugin: rapport global-

Donc, lorsque j'exécute cette commande dans jenkins, cela génère des rapports erronés. Je l'ai checed dans le répertoire WorkSpace pour le projet correspondant dans jenkins. Il montre une couverture de 0% pour chaque projet. Mais quand je lance la même commande maven dans mon système local, jacoco-maven génère des rapports de couverture corrects. Je peux les voir comme ils sont au format HTML.

Mon pom.xml a ceci à courir jacoco avec Maven:

<plugin> 
    <groupId>org.jacoco</groupId> 
    <artifactId>jacoco-maven-plugin</artifactId> 
    <version>0.7.7.201606060606</version> 
    <executions> 
     <execution> 
      <goals> 
       <goal>prepare-agent</goal> 
      </goals> 
     </execution> 
     <execution> 
      <id>report</id> 
      <phase>prepare-package</phase> 
      <goals> 
       <goal>report</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 

J'utilise des outils suivants:

jacoco-maven-plugin version 0.7.7 
jenkins-jacoco-plugin version 2.0.1 
apache-maven version 3.5.0 

Aussi ceci est mon jenkins journal de la console que je reçois après la commande maven est terminée.

[JaCoCo plugin] Collecting JaCoCo coverage data... 
[JaCoCo plugin] **/**.exec;**/target/classes;**/src; locations are configured 
[JaCoCo plugin] Number of found exec files for pattern **/**.exec: 0 
[JaCoCo plugin] Saving matched execfiles: 
[JaCoCo plugin] Saving matched class directories for class-pattern: **/target/classes: 
<<<<<<Classes folders list for all project>>>>>>>> 
[JaCoCo plugin] Loading inclusions files.. 
[JaCoCo plugin] inclusions: [] 
[JaCoCo plugin] exclusions: [] 
[JaCoCo plugin] Thresholds: JacocoHealthReportThresholds [minClass=0, maxClass=0, minMethod=0, maxMethod=0, minLine=0, maxLine=0, minBranch=0, maxBranch=0, minInstruction=0, maxInstruction=0, minComplexity=0, maxComplexity=0] 
[JaCoCo plugin] Publishing the results.. 
[JaCoCo plugin] Loading packages.. 
[JaCoCo plugin] Done. 
[JaCoCo plugin] Overall coverage: class: 0, method: 0, line: 0, branch: 0, instruction: 0 
Finished: SUCCESS 

Ci-dessous mon jenkins configuration des rapports de jacoco:

enter image description here

Et voici ma structure de dossiers du répertoire cible.

enter image description here

répertoire cible est présent sous projet dir.

donc ma vraie préoccupation est pourquoi ces fichiers jenkins-à-dire les fichiers de couverture ne sont pas obtenir générés correctement en même commande dans mon système local génère le rapport correct de couverture.

Merci.

P.S. : - Je le fais dans un environnement multimodule où mes fichiers source sont présents dans un projet et les fichiers de test sont disponibles dans un autre projet. Ainsi, pour chaque projet source, il existe un projet de test. Aussi une chose que je viens de remarquer après avoir exécuté la commande maven, Les fichiers de classe sont créés sous le répertoire/target/classes de la source tandis que les fichiers html pour les rapports sont générés sous/target/site du projet de test. Je ne suis pas sûr de savoir pourquoi.

+0

ligne 'Nombre de fichiers trouvés exec pour motif **/** exec:.. 0' dans le journal est suspect - conjecture sauvage, mais pouvez-vous essayer quelque chose comme' **/* exec 'ou' **/jacoco.exec'? – Godin

+0

Oui, je vais essayer ça. Mais les fichiers ne sont pas générés correctement dans le système jenkins lui-même. Donc, même s'il prend le fichier exec en utilisant le chemin correct, il ne montrera pas le rapport correct bcz le rapport lui-même est mal généré dans la boîte de jenkins. – Jay

+0

Veuillez également relire la documentation http://www.jacoco.org/jacoco/trunk/doc/report-mojo.html et http://www.jacoco.org/jacoco/trunk/doc/report-aggregate-mojo Etrange que vous les mélangez et que vous demandiez l'exécution du dernier depuis la ligne de commande, car il prend en compte les dépendances du module où il est exécuté et seulement celles qui font partie du réacteur, c'est à dire qui font partie de la construction actuelle. – Godin

Répondre

0

J'ai trouvé le morceau de code que j'ai raté à cause duquel les rapports ne généraient pas dans jenkins.

J'ai oublié d'ajouter jacoco-maven-plugin balise interne de pom.xml mère. Je n'avais ajouté à l'intérieur &.

:-)