Un outil permettant de définir des règles de couverture de code par fichier. Définissez un seuil de couverture minimum pour chaque fichier et configurez une couverture minimale personnalisée pour les fichiers existants si la couverture de test actuelle n'est pas encore conforme aux normes. L'échec de l'inspection sera généré au format checkstyle, ce qui lui permettra d'être importé dans les outils ci/cd.
Le calcul de couverture standard est calculé sur l’ensemble de la base de code. Si par exemple le seuil est de 80 % et qu'un fichier descend en dessous de 80 %, vous ne le remarquerez jamais car la couverture globale est passée de 87,6 % à 87,4 %. Ce forfait garantit que cela n'arrive plus et la couverture est calculée par dossier.
Entrée : couverture de trèfle.xml
Sortie : checkstyle ou gitlab
Incluez la bibliothèque en tant que dépendance dans votre propre projet via :
composer require "digitalrevolution/phpunit-file-coverage-inspection" --dev
Fichier : phpfci.xml
<?xml version="1.0" encoding="UTF-8"?> <phpfci xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="vendor/digitalrevolution/phpunit-file-coverage-inspection/resources/phpfci.xsd"min-coverage= "100"allow-uncovered-methods="false"> <custom-coverage><!-- règle de couverture basée sur le répertoire --><directory path="src/Lib/" min="90"/><!-- les sous-répertoires remplaceront une règle de répertoire parent --><directory path ="src/Lib/Config/" min="100"/><!-- la règle de fichier remplacera toujours une règle de répertoire --><file path="src/Lib/Config/File.php" min="80 "/> </custom-coverage> <!-- lorsque 'allow-uncovered-methods' est défini sur false, remplacez ce comportement pour des fichiers spécifiques : --><ignore-uncovered-methods> <chemin du fichier="src/Command/ExampleCommand.php"/> </ignore-uncovered-methods> </phpfci>
Option | Requis | Défaut | Description |
---|---|---|---|
couverture minimale | Oui | - | La couverture mondiale minimale |
autoriser les méthodes découvertes | Non | FAUX | Toutes les méthodes doivent avoir au moins une certaine couverture |
ou générer un fichier de configuration basé sur les résultats de couverture existants
php supplier/bin/phpfci baseline --baseDir /home/ci/workspace cover.xml ./phpfci.xml
Le répertoire de base sera soustrait des chemins de fichiers dans cover.xml
Format du style de contrôle :
php supplier/bin/phpfci inspecter couverture.xml --reportCheckstyle=reports/checkstyle.xml
Format Gitlab :
php supplier/bin/phpfci inspecter cover.xml --reportGitlab=reports/gitlab.errors.json
Format Gitlab vers le fichier et sortie texte vers la sortie standard :
php supplier/bin/phpfci inspecter couverture.xml --reportGitlab=reports/gitlab.errors.json --reportText
Format du texte vers la sortie standard :
php supplier/bin/phpfci inspecter couverture.xml php supplier/bin/phpfci inspecter couverture1.xml couverture2.xml
php supplier/bin/phpfci inspecter couverture.xml --reportText
Option | Valeurs | Description |
---|---|---|
argument 1 | inspect , baseline | la commande à exécuter. |
argument 2 [ argument 3 ]... | coverage.xml [ coverage2.xml ] | le(s) fichier(s) d'entrée de couverture phpunit clover. |
--reportGitlab=[<file>] | chemin du fichier ou s'il est absent, sortie standard | le fichier (ou stdout) dans lequel écrire le format gitlab. |
--reportCheckstyle=[<file>] | chemin du fichier ou s'il est absent, sortie standard | le fichier (ou stdout) dans lequel écrire le format checkstyle. |
--reportText=[<file>] | chemin du fichier ou s'il est absent, sortie standard | le fichier (ou stdout) dans lequel écrire le format checkstyle. |
--config=<path-to-file> | phpfci.xml | le chemin d'accès au fichier de configuration. |
--baseDir=<path> | par défaut, c'est le répertoire du fichier de sortie | Le répertoire racine du projet, sera utilisé pour rendre les chemins relatifs. |
--exit-code-on-failure | - | Définissez le code de sortie sur 1 en cas d'échec. |
Remarque : si aucun --reportGitlab
, --reportCheckstyle
ou --reportText
n'est défini, il sera par défaut --reportText=php://stdout
Le troisième argument obligatoire et --report
ont été supprimés et doivent être remplacés par : --reportGitlab=<file>
, --reportCheckstyle=<file>
ou --reportText=<file>
Chez 123inkt (qui fait partie de Digital Revolution BV), chaque jour, plus de 50 professionnels du développement travaillent à l'amélioration de notre ERP interne et de nos différentes boutiques. Vous souhaitez nous rejoindre ? Nous recherchons des développeurs.