Accès rapide :
La vidéo
Introduction
Le plugin EclEmma d'intégration pour JaCoCo
Installation d'EclEmma
Utilisation d'EclEmma
Le plugin eCobertura d'intégration pour Cobertura
Cette vidéos vous montre comment obtenir un calcul de taux de couverture de code (Code Coverage) en Java en utilisant les outils EclEmma et JaCoCo.
Ecrire des tests unitaires pour vérifier vos codes, c'est bien ! Mais Qu'elle est la quantité de code de votre application qui est réellement testé ? Souvent, on pense en avoir une idée et on se trompe. Avoir un indicateur fiable sur le nombre de lignes de code mis en jeu par votre procédure de test est donc important. C'est ce que propose de vous calculer un outil de couverture de code (code coverage en anglais).
En Java, il existe plusieurs outils de calcul de taux de couverture de code. Parmi eux, nous pouvons citer :
JaCoCo (Java Code Coverage library) : un outil open source et fiable.
Du point de vue d'EclEmma (j'y reviens très rapidement), il est le successeur de l'outil Emma (un autre outil de Code Coverage).
Activez ce lien pour ouvrir le site officiel.
Cobertura (mot espagnol signifiant couverture) : un autre outil open source, mais moins maintenu.
Activez ce lien pour ouvrir le site officiel.
Dans les deux cas, ces outils peuvent être démarrés en mode ligne de commande. Mais il existe aussi, pour chacun d'eux, un plugin d'intégration dans Eclipse. C'est plus sur ces plugins d'intégration que je vais porter mon attention dans ce chapitre.
Le plugin d'intégration de JaCoCo se nomme EclEmma (lors de la bascule d'Emma vers JaCoCo, l'équipe de développement n'a pas changé le nom de ce plugin). Fort de sa notoriété et de sa qualité, il est devenu un projet officiel de la Fondation Eclipse. Vous trouverez la page d'accueil du projet EclEmma sur le site Eclipse.
Depuis quelques temps, ce plugin est installé de base dans un Eclipse orienté Java. Si tel est votre cas, vous pouvez directement commencer à l'utiliser. Dans le cas contraire, la section suivante vous montre comment l'installer.
Pour installer le plugin EclEmma sur votre Eclipse, veuillez ouvrir le menu « Help » et y sélectionner l'assistant « Install New Software... ». La boite de dialogue suivante doit s'ouvrir : vous pouvez utiliser le champ de recherche pour limiter le nombre de plugins installables.
Accepter le contrat de licence et procédez à l'installation du plugin. Au terme de l'installation, Eclipse devra être redémarré car les plugins sont chargés au lancement d'Eclipse.
Vous pouvez lancer n'importe quel bout de code Java avec le support du Code Coverage, qu'il s'agisse du programme à proprement parler ou un ensemble de tests JUnit. Pour ce faire, il faut choisir l'assistant de lancement dans le menu contextuel « Coverage As / Junit Test », comme le montre la capture d'écran suivante.
Une fois lancé, le plugin EclEmma doit ouvrir une nouvelle vue Eclipse en bas de l'écran : c'est la vue « Coverage ». Voici à quoi ressemble cette vue.
Ce qu'on constate rapidement, c'est que notre procédure de test ne couvre que 58% de notre code source. Cela sous-entend que 42% du code n'a pas été vérifié et qu'il peut donc y avoir des régressions. Clairement, ce n'est pas suffisant est la procédure de test doit être enrichie pour monter au-delà de 90%.
Pour identifier les portions de code no testées, vous avez deux outils fort pratiques. Le premier, c'est l'arborescence dans la vue « Coverage ». Déployez-la pour localiser les méthodes non déclenchées par la batterie de tests.
Vous pouvez constater que le constructeur qui transforme une donnée de type double en un rationnel n'a jamais été lancé durant l'exécution du jeu
de tests. Vous pouvez rajouter un test à la classe RationalTest
pour améliorer ce point.
Le second outil permettant de visualiser les portions de code non testées est intégré directement dans l'éditeur Java. Il surligne en vert les lignes de code exécutées et en rouge les lignes de code non exécutées. Cet outil permet de confirmer que le constructeur acceptant un double en paramètre n'a pas été utilisé par la procédure de tests.
Le plugin eCorbertura est non officiel et doit donc être installé à partir du Marketplace Eclipse. Pour ce faire, veuillez ouvrir le menu « Help » et y sélectionner l'assistant « Eclipse Marketplace... ». Une fois que la boîte de dialogue ouverte, recherchez le plugin eCobertura et installez-le. Accepter le contrat de licence et procédez à l'installation du plugin. Au terme de l'installation, Eclipse devra être redémarré car les plugins sont chargés au lancement d'Eclipse.
Son fonctionnement est assez similaire à celui de EclEmma.
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :