linkedin-ico github-ico

Verification du code coverage avec GrumPHP

grumphp

Le développement logiciel moderne exige non seulement d'écrire du code, mais aussi de s'assurer de sa qualité et de sa fiabilité. GrumPHP, un outil conçu pour améliorer ces aspects, se positionne comme un allié indispensable dans le processus de vérification du code coverage.

C'est quoi GrumPHP ?

GrumPHP est un outil de vérification de code source qui s'intègre automatiquement dans votre workflow Git. Il s'assure que votre code est conforme aux standards de qualité avant même que celui-ci soit commit, en exécutant des tâches comme le linting, les tests unitaires, et bien sûr, la vérification du code coverage.

L'importance des vérifications automatiques

Les vérifications automatiques, telles que celles proposées par GrumPHP, jouent un rôle crucial dans le développement logiciel. Elles permettent de détecter rapidement les erreurs, les failles de sécurité ou les non-conformités aux standards de codage. Ceci est essentiel pour maintenir une base de code saine et faciliter les mises à jour ou les ajouts de fonctionnalités.

Exemple de configuration

La configuration de GrumPHP et de PHPUnit est un élément clé pour garantir la qualité et la couverture du code au sein de vos projets.

Configuration PHPUnit

La configuration de PHPUnit est définie dans le fichier phpunit.xml. Cet exemple montre comment configurer PHPUnit pour qu'il initialise l'environnement de test en chargeant le fichier bootstrap.php, exclue certaines parties du code de la couverture (comme les répertoires Entity et Repository), et génère un rapport de couverture de code dans le format Clover avec le fichier clover.xml. Ce niveau de détail permet de cibler précisément les tests sur les parties cruciales du code et d'exclure les parties moins pertinentes pour la couverture.

<phpunit ...>    
   <coverage>        
      <include>            
         <directory suffix=".php">../src/</directory>
      </include>
      <exclude>
         <directory suffix=".php">../src/Entity/</directory>
           ...        
      </exclude>
      <report>
         <clover outputFile="../var/log/clover.xml"/>
      </report>
   </coverage>
   ... 
</phpunit>

Cette approche méthodique assure une analyse fine du code coverage, permettant aux développeurs de se concentrer sur l'amélioration des tests pour les parties du code qui le nécessitent vraiment.

Configuration GrumPHP

La configuration de GrumPHP est spécifiée dans le fichier grumphp.yml. Elle définit l'exécution de tâches parallèles pour optimiser les performances et spécifie la tâche phpunit pour exécuter les tests unitaires selon la configuration définie dans tests/phpunit.xml. De plus, elle utilise la tâche clover_coverage pour vérifier le niveau de couverture de code, en se basant sur le fichier var/logs/clover.xml, et définit un seuil de couverture à atteindre.

grumphp:
   parallel:
       enabled: true
       ...
   tasks:
       phpunit:
           testsuite: unit
           ...
       clover_coverage:
           clover_file: var/log/clover.xml
           level:60

Cette configuration assure que GrumPHP joue un rôle crucial dans le maintien de la qualité du code en exécutant automatiquement des tests et en vérifiant la couverture de code à chaque commit, encourageant ainsi les meilleures pratiques de développement dès les premières étapes du cycle de développement.