Tachycardia est une extension PHPUnit qui détecte et signale les tests lents et les imprime directement dans votre console. Il peut également éventuellement annoter en ligne les tests spécifiques dans les fichiers lors des demandes d'extraction.
REMARQUE : La tachycardie détectera uniquement les tests lents dans vos suites de tests, mais n'offrira aucune explication sur la raison pour laquelle ceux identifiés sont lents. Vous devriez plutôt utiliser un profileur dédié pour ceux-ci.
$ supplier/bin/phpunitPHPUnit 10.5.5 par Sebastian Bergmann et contributeurs.Exécution : PHP 8.3.1 avec Xdebug 3.3.1Configuration : /home/runner/work/tachycardia/tachycardia/phpunit.xml.distRandom Seed : 1698146158.... .................................................................. ........... 65 / 96 ( 67%)............................... 96 / 96 (100 %)NexusPHPUnitTachycardiaTachycardiaExtension a identifié ce seul test lent : il a fallu 1,3374 s à partir de la limite de 1,0000 s pour exécuter NexusPHPUnitTachycardiaTestsRendererGithubRendererTest::testRendererWorksProperlySlow tests : Heure : 00 : 00 : 01,710 (2,54 %) Heure : 00:58.737, Mémoire : 16,00 MBOK (96 tests, 265 assertions)Génération du rapport de couverture de code au format Clover XML... terminé [00:00.391]Génération du rapport de couverture de code au format HTML... terminé [00:01.930]
Tachycardia ne doit être installé qu'en tant que dépendance du temps de développement pour faciliter l'exécution de la suite de tests de votre projet. Vous pouvez installer à l'aide de Composer :
composer require --dev nexusphp/tachycardia
La tachycardie prend en charge ces paramètres :
time-limit - Délai en secondes à appliquer pour tous les tests. Tous les tests dépassant ce montant seront considérés comme lents. Par défaut : 1,00
report-count - Nombre de tests lents à afficher dans le rapport de la console. Ceci est ignoré dans le rapport Github Actions. Par défaut : 10
précision - Degré de précision des décimales du temps consommé par le test et du temps imparti. Par défaut : 4
format - Le format du moteur de rendu pour la console.
ci-format - Le format du moteur de rendu pour le CI.
Les formats de rendu pour la console et CI peuvent être l'un des suivants :
Format | Pour console ? | Pour CI ? | Remarques |
---|---|---|---|
liste | Par défaut pour la console | ||
tableau | |||
github | Par défaut pour CI | ||
gitlab | |||
équipeville |
Pour utiliser l'extension avec ses options de configuration par défaut, vous pouvez simplement ajouter ce qui suit dans votre fichier phpunit.xml.dist
ou phpunit.xml
.
<?xml version="1.0" encoding="UTF-8"?> <phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd" bootstrap="vendor/autoload.php" cacheResultFile=" build/.phpunit.cache/test-results" couleurs="true" beStrictAboutOutputDuringTests="true" beStrictAboutTodoAnnotatedTests="true" failOnRisky="true" failOnWarning="true"><!-- Vos autres configurations phpunit ici --><extensions> <bootstrap class="NexusPHPUnitTachycardiaTachycardiaExtension" /> </extensions> </phpunité>
Maintenant, exécutez vendor/bin/phpunit
. S'il existe des cas de test où le temps consommé dépasse les limites de temps configurées, ceux-ci seront affichés dans la console une fois tous les tests terminés.
Si vous souhaitez personnaliser une ou plusieurs des options disponibles, vous pouvez simplement modifier l'entrée dans votre fichier phpunit.xml.dist
ou phpunit.xml
.
<?xml version="1.0" encoding="UTF-8"?> <phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd" bootstrap="vendor/autoload.php" cacheResultFile=" build/.phpunit.cache/test-results" couleurs="true" beStrictAboutOutputDuringTests="true" beStrictAboutTodoAnnotatedTests="true" failOnRisky="true" failOnWarning="true"><!-- Vos autres configurations phpunit ici --><extensions> <classe bootstrap="NexusPHPUnitTachycardiaTachycardiaExtension"> <parameter name="time-limit" value="2.00" /> <parameter name="report-count" value="30" /> <nom du paramètre="precision" value="2" /> <parameter name="format" value="table" /> <parameter name="ci-format" value="github" /> </bootstrap> </extensions> </phpunité>
Signalement de tests lents
Activer/désactiver les rapports de console à l'aide d'une variable d'environnement
Activer/désactiver le profilage dans les actions Github
Délais personnalisés
Définition de délais personnalisés par test
Fixer des limites de temps personnalisées par cours
Désactivation des limites de temps par test ou par classe
Utiliser plutôt des attributs
Tabulation des résultats au lieu d'un rendu simple
Réexécution des tests lents pour voir s'ils sont rapides maintenant
Vous passez de la v1.x à la v2.x ? Consultez le guide de MISE À NIVEAU.
Les contributions sont les bienvenues. Si vous constatez une amélioration ou une correction de bug, ouvrez un PR maintenant !
En savoir plus sur la contribution à la tachycardie Nexus.
Tachycardia a été inspirée de johnkary/phpunit-speedtrap
, mais injectée de stéroïdes anabolisants.
La tachycardie est en fait un terme médical désignant une fréquence cardiaque qui dépasse la fréquence normale au repos, généralement supérieure à 100 battements par minute.
Cette bibliothèque est sous licence MIT.