Coveralls est un service d’analyse de la couverture du code (code coverage) qui se couple naturellement avec Github et Travis. Il permet de suivre au fur et à mesure des pull requests si les nouvelles fonctionnalités sont bien couvertes par des tests unitaires ou d’intégration. Dans cet article, nous allons voir comment le mettre en place simplement dans un projet Angular dont le code est hébergé par Github et suivi par Travis (voir l’article Configurer Travis sur Github pour un projet Angular)
Installer Coveralls
Nous devons d’abord installer Coveralls comme une dépendance de l’application (voir l’article Gérer les dépendances avec NPM)
npm install --save-dev coveralls
A partir de maintenant, dans votre répertoire /node_modules/coveralls/bin se trouve un exécutable en javascript coveralls.js. Il s’agira de demander à Travis d’appeler cet exécutable en lui passant en argument le fichier de référence de couverture de code.
Générer le code coverage
Angular fournit déjà tout les outils nécessaires à la génération du code coverage. Une simple commande
npm run test -- --watch=false --code-coverage
suffit pour que Angular crée, un répertoire /coverage à la racine du projet contenant un rapport au format html.
Lier Coveralls à Travis
Toutefois, Coveralls n’utilisera que le fichier /coverage/lcov.info, et nous ne voulons pas embarquer dans les commits l’ensemble du répertoire /coverage. Nous l’ajoutons donc à .gitignore et nous allons laisser le soin à Travis de le générer puis de le passer à Coveralls à chaque build.
Modifions .travis.yml :
... script: - npm run test -- --watch=false --no-progress --browsers=ChromeHeadlessNoSandbox --code-coverage - cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js ...
et TADAAAA ! Le tour est joué.
Afficher le badge
Nous pouvons maintenant arborer fièrement le badge de couverture du code sur README.md :
[](https://coveralls.io/github/AlanCrevon/LeCoinDuProf?branch=master)
Et laisser les contributeurs découvrir quelles parties du code restent à couvrir de tests sur https://coveralls.io/github/AlanCrevon/LeCoinDuProf.
Espérons que le code coverage restera le plus proche possible de 100% 😉
Commentaires récents