SONAR - Mesurer la Couverture de Code à l'aide de Cobertura
Je suis à l'aide de sonar pour mesurer la qualité du code. Une chose que je ne sais pas, c'est les étapes pour mesurer la couverture de code à l'aide de Cobertura.
J'ai suivi les étapes de http://cobertura.sourceforge.net/anttaskreference.html et a été en mesure de générer des fichiers xml. Comment puis-je obtenir ces fichiers xml dans SONAR?
Est-il un moyen plus simple d'utiliser Cobertura dans SONAR?
Je suis en cours d'exécution du code de la couverture (Couverture) dans un autre serveur que mon SONAR serveur. Les deux serveurs sont en cours d'exécution sous LINUX.
Merci pour l'aide!
Mise à jour sur ce sujet: exemples peuvent être trouvés sur notre sonar-exemple de référentiel => github.com/SonarSource/sonar-examples/tree/master/projects/...
OriginalL'auteur lwijono | 2011-10-12
Vous devez vous connecter pour publier un commentaire.
Vous configurez le Sonar de la tâche de téléchargement de test de l'unité et de la couverture des rapports générés par d'autres parties de votre construction logique.
Ceci est en contraste à Maven qui a une version standard du cycle de vie, Sonar est en mesure de l'effet de levier.
De test de l'unité et de la couverture de code
La logique suivante exécute les tests unitaires avec cobertura instrumentation des classes. XML rapport de couverture est généré par cobertura à la fin:
Invoquant Sonar
J'utilise normalement un très simple Sonar cible:
Et l'utilisation d'un fichier de propriétés pour contrôler tous les aspects de Sonar comportement:
Montre comment Sonar peut être configuré pour ramasser les rapports de test unitaire créée par junit et le rapport de couverture de code généré par cobertura.
La construction n'a pas à exécuter sur le même serveur que le Sonar. Dans ce cas, il doit fournir la distance Sonar URL JDBC et les informations d'identification.
Le Sonar de sortie de la tâche de montrer que vous êtes en train de charger le bon fichier?
Comment puis-je le vérifier?
Avez-vous configuré le "sonar.cobertura.reportsPath" propriété à chercher le bon fichier? La sortie de la tâche doit afficher le chemin complet du fichier. Si Sonar est d'essayer de charger un fichier inexistant ce qui expliquerait la disparition de votre métriques de couverture de code
Dans les versions ultérieures, le sonar.cobertura.reportsPath la propriété a changé de sonar.cobertura.reportPath " > docs.codehaus.org/display/SONAR/Advanced+paramètres.
OriginalL'auteur Mark O'Connor
Vous devez ajouter ces propriétés de Sonar
pom.xml
:(avec les chemins adapté à votre environnement)
Et de l'exécution:
Vérifier la liste des utilisateurs pour plus de détails.
Sonar a été couplé à Maven jusqu'à récemment. Depuis la 2.6 (Mars 2011),
Sonar
prend également en charge ANT. Vous pouvez ajouter des propriétés ci-dessus pour le script ant comme indiqué ici, par exemple:<property key="sonar.dynamicAnalysis" value="false" />
. Je n'ai pas couru Sonar + Couverture + Ant coureur, mais il ne devrait pas être différent. Sinon, vous pouvez consulter un Sonar Stand Alone ( pas de ANT, Maven, etc. ) runnerOriginalL'auteur tolitius
si vous utilisez Maven, alors vous n'avez rien de spécial à préciser dans votre fichier POM. Il suffit d'exécuter "mvn clean:sonar" et Sonar automatiquement compiler votre code, l'exécution de vos tests avec Cobertura (qui est la valeur par défaut de la couverture de moteur dans Sonar) et de pousser tous les résultats dans la base de données.
Même si vous êtes en utilisant Ant [1], ou la simple java runner [2] au lieu de Maven.
Je dois insister sur le fait que vous n'avez pas à exécuter manuellement Cobertura (avec une tâche Ant par exemple), préalablement à l'exécution de Sonar.
[1] http://docs.codehaus.org/display/SONAR/Analyzing+avec+Sonar+Ant+Tâche
[2] http://docs.codehaus.org/display/SONAR/Analyse+avec+un+simple+Java+Runner
Fabrice,
SonarSource
OriginalL'auteur Fabrice - SonarSource Team