C++ Jenkins QA Stack / outils
Nous sommes actuellement en train de construire une pile QA pour votre développement C++ .
Nous avons déjà plusieurs instancesJenkins en cours d'exécution et avons fait de très bonnes expériences avec le serveur CI en combinaison avec d'autres langages comme java et php.
Ce que je demande sont des pointeurs vers des chaînes d'outils qui peuvent être utilisées pour le développement C++ avec Jenkins.
Plus spécifique (exemples java / php en accolades):
- a test unitaire cadre {[2] } qui teste et produit des rapports de couverture (jUnit / phpUnit)
- a lignes directrices de codage checker (checkstyle / phpCodeSniffer)
- quelque chose PMD {[25] } qui détecte des problèmes potentiels dans une base de code (pmd / phpmd)
- plus si applicable / nécessaire , mais ces 3 seraient les bases je suppose?
Bounty modifier:
Alors que j'ai obtenu une réponse acceptable à ma question, on m'a demandé de fournir plus d'Outils / options / raisons d'utiliser Jenkins pour ce projet.
Dans le passé, j'ai fait des expériences sous-optimales avec des outils commerciaux à cet égard. (Quoi? Vous voulez économiser! ces rapports? Ensuite, vous devez acheter le plugin supplémentaire 10k Bucks / Year qui peut générer des graphiques de fantaisie! pour vous.) Je pourrais me tromper ici, alors dites-moi si je le suis.
Mais surtout je suis à la recherche d'une pile complète d'outils à utiliser avec Jenkins pour le développement C++ et QA
3 réponses
Nous utilisons Jenkins avec C & C++. Ce sont des outils que nous avons utilisés, et je pense que vous pouvez trouver utile. Tous sont utilisables avec Jenkins:
- Cadre de test unitaire - cppunit : sorties xml qui peut être alimenté directement dans Jenkins en utilisant le plugin cppunit
- Couverture : gcov + gcovr produit de bons rapports de couverture de
- directives de Codage correcteur : vous pouvez utiliser pclint et le avertissements plugin pour ce.
- Mess Detector: pas sûr de ce que vous entendez par mess ici, mais nous utilisons PMD/CPD pour la vérification de la duplication de code et NSIQ pour la complexité et LOC
Nous utilisons également cppcheck pour l'analyse statique.
J'espère que ça aide!
Nous utilisons Jenkins avec l'googletest framework de test unitaire.
- les essais produisent du xml compatible jUnit.
- porté sur la plupart des compilateurs que vous rencontrerez probablement.
En suivant mon propre lien, j'ai trouvé ceci:
Couverture continue du Code avec gcc, googletest et Hudson
Les trois premières lignes de la commande exécutent simplement la construction. Le la commande sur la ligne 4 exécute le test binaire application que nous avons construit, et affiche le résumé des résultats du test dans un fichier XML au format junit.
Les deux dernières commandes sont là où se trouve la magie. Cela exécute le gcovr script, un script Python pratique qui convertit la sortie gcov en Fichier XML de style Cobertura.
Ensuite, nous devons dire à hudson de rechercher dans l'espace de travail junit et les fichiers XML de couverture comme une action post-construction. Maintenant quand nous courons la construction nous obtenons de beaux graphiques de vue d'ensemble trending out unit test résultat et la couverture du code.