“Projet de couverture est fixé à 0%” – JaCoCo et Sonar dans Jenkins avec Ant
J'ai déplacé mon travail à partir d'un seul Hudson machine multi-esclave Jenkins, de l'environnement, et maintenant JaCoCo couverture ne fonctionne plus.
TRAVAIL (ancien):
Hudson 2.0.1,
Jenkins, Sonar Plugin 1.7.1,
Sonar 2.1.2
CASSÉ (nouveau):
Jenkins 1.446,
Jenkins, Sonar Plugin 1.7.2,
Sonar 2.1.2
Mon Hudson travail est appelé Pinnacle et il utilisé pour faire fonctionner sur un seul serveur Hudson Sonar sur la même machine. J'ai mis en place mon (PAS de MAVEN) construire en procédant comme suit.
1) Ajout d'une cible Ant à mon build.xml appelé test-with-coverage
2) Configuré le Summum de l'emploi dans l'Hudson à "invoquer autonome Sonar" l'Analyse de ces propriétés:
sonar.projectKey=com.skyboximaging:pinnacle
sonar.projectName="Pinnacle"
sonar.projectVersion=1.0
sources=Pinnacle/src/java
tests=Pinnacle/test/java
binaries=Pinnacle/classes
sonar.jacoco.reportPath=Pinnacle/jacoco.exec
sonar.jacoco.antTargets=test-with-coverage
(Notez que le code est vérifié dans Pinnacle répertoire dans le Jenkins travail l'espace de travail.)
3) Configuré Sonar "paramètres généraux", pour utiliser JaCoCo de la couverture de code
Tout a fonctionné à merveille!
Mais dans le nouveau Jenkins environnement, je vois cette erreur dans le Jenkins sortie de la construction:
23:15:17.863 INFO Sensor JaCoCoSensor...
23:15:17.868 INFO Project coverage is set to 0% as no JaCoCo execution data has been dumped: /var/lib/jenkins/workspace/Pinnacle/Pinnacle/jacoco.exec
Que le fichier n'existe pas sur l'esclave où la construction a couru. (Le répertoire /var/lib/jenkins/espace de travail/Pinnacle/Pinnacle ne existe pas.)
Tous les autres capteurs (FindBugs, PMD, etc) semblent OK. Juste JaCoCo est cassé.
Ne Sonar/JaCoCo même travailler dans un environnement multi-esclave Jenkins environnement?
Je soupçonne que la tâche Ant test-with-coverage
n'est pas en train d'exécuter. Comment Sonar localiser le build.xml? Et quelle est la différence entre les anciennes et les nouvelles installations?
OriginalL'auteur jdtangney | 2012-01-14
Vous devez vous connecter pour publier un commentaire.
J'ai récemment mis en place et réussit à Sonar et Jacoco de fonctionner en même temps. Depuis que je suis récente avec le sujet, j'ai pensé que je voudrais vérifier sur stackoverflow pour des problèmes similaires et aider. Je suis l'obtention de résultats de Jacoco, mais trouvé que vous aviez à définir explicitement les paramètres suivants en plus des propriétés que vous avez indiqué dans votre post:
Vous devez définir sonar.de base.codeCoveragePlugin=jacoco si vous voulez être en mesure d'utiliser le sonar.jacoco.reportPath de la propriété. Sinon, vous devrez utiliser le sonar.jacoco.itReportPath de la propriété. Cependant, je vous recommande juste réglage de la codeCoveragePlugin et reportPath propriétés. Sinon, il n'affiche pas sous la valeur par défaut de couverture widget dans sonar. Veuillez prendre note, vous ne pouvez pas utiliser la valeur par défaut de la couverture de l'outil et jacoco ensemble. Il doit être l'un ou l'autre. J'ai décidé d'utiliser Jacoco.
Votre cible ant doit être configuré de manière à générer le jacoco.exec résultats avant l'exécution du sonar tâches:
Assurez-vous de dire sonar à la réutilisation des rapports et de toute sunfire rapports si vous êtes en cours d'exécution junit avant de sonar, c'est si vous êtes en cours d'exécution junit en dehors de sonar:
Pour quelque raison que ce soit, si vous avez besoin de plus de commentaires de débogage, utilisez la propriété suivante:
sonar.verbose=true
si je suis en utilisant sahi au lieu de junit rapports, puis puis-je utiliser sahi rapports(qui sont en html) dans sonar.surefire.reportsPath
OriginalL'auteur Jason Huntley