Visualiser le code coverage des tests Atoum dans PHPStorm

Cet article a été publié depuis plus de 6 mois, cela signifie que le contenu peut ne plus être d'actualité.

Lorsque je parle d’Atoum auprès de personnes qui ne l’utilisent pas, un des éléments qui revient très souvent (pour les utilisateurs de PHPStorm tout du moins), est l'impossibilité de visualiser la couverture du code par les tests directement dans l’IDE. Or à partir de maintenant, cela sera un argument qui ne tient plus.

Effectivement, il est désormais possible de visualiser le code coverage des tests Atoum directement dans PHPStorm grâce au plugin PHPUnit code coverage qui est désormais compatible avec les fichiers de type "clover" générés par Atoum.

Pour installer le plugin dans l'IDE, il faut aller dans les préférences de l'outil, puis dans la section "Plugin". Cliquez sur le bouton "Browse repositories..." pour parcourrir l'ensemble des plugins disponibles, et recherchez "PHPUnit code coverage" pour l'installer (il sera nécessaire de redémarrer PHPStorm).

Installation PHPUnit code coverage

Pour pouvoir utiliser le plugin, nous allons maintenant devoir configurer Atoum pour que ce dernier nous génère un rapport de type "clover". Ce rapport se présente sous la forme d'un fichier XML décrivant tous les fichiers qui ont été parcouru par nos tests et indique quelles lignes ont été executé ou non. Le plugin lit ce fichier pour retranscrire son contenu dans l'IDE.

Pour générer ce rapport, il faut ajouter les lignes ci-dessous dans votre fichier .atoum.php:

$cloverWriter = new atoum\writers\file(__DIR__.'/build/atoum.clover.xml');
$cloverReport = new atoum\reports\asynchronous\clover();
$cloverReport->addWriter($cloverWriter);
$runner->addReport($cloverReport);

Une fois cela effectué, il ne vous reste plus qu'à configurer le plugin en lui indiquant où trouver le fichier généré. Il faut alors retourner dans les préférences de PHPStorm et ouvrir la section "PHPUnit code coverage":

Configuration PHPUnit code coverage

La configuration terminée, vous pourrez alors visualiser les blocs de votre code couvert par les tests et ceux qui ne le sont pas.

PHPStorm Atoum code coverage

Plugin PHPUnit code coverage