Tachycardia ist eine PHPUnit-Erweiterung, die langsam laufende Tests erkennt, meldet und diese direkt in Ihrer Konsole ausgibt. Optional können die spezifischen Tests in den Dateien während Pull-Anfragen auch inline mit Anmerkungen versehen werden.
HINWEIS: Tachycardia erkennt nur die langsamen Tests in Ihren Testsuiten, bietet jedoch keine Erklärung dafür, warum diese identifizierten langsam sind. Stattdessen sollten Sie für diese einen dedizierten Profiler verwenden.
$ Vendor/bin/phpunitPHPUnit 10.5.5 von Sebastian Bergmann und Mitwirkenden. Laufzeit: PHP 8.3.1 mit Xdebug 3.3.1 Konfiguration: /home/runner/work/tachycardia/tachycardia/phpunit.xml.distRandom Seed: 1698146158.... ................................................. ........... 65 / 96 ( 67%)............................ 96 / 96 (100 %) NexusPHPUnitTachycardiaTachycardiaExtension hat diesen einzigen langsamen Test identifiziert: Die Ausführung von NexusPHPUnitTachycardiaTestsRendererGithubRendererTest::testRendererWorksProperlySlow Tests dauerte 1,3374 Sekunden von der 1,0000-s-Grenze: Zeit: 00:00:01.710 (2,54 %)Zeit: 00:58.737, Speicher: 16,00 MBOK (96 Tests, 265 Assertionen)Codeabdeckungsbericht wird im Clover-XML-Format generiert ... erledigt [00:00.391]Codeabdeckungsbericht wird im HTML-Format generiert ... erledigt [00:01.930]
Tachycardia sollte nur als Abhängigkeit zur Entwicklungszeit installiert werden, um die Ausführung der Testsuite Ihres Projekts zu unterstützen. Sie können mit Composer installieren:
composer require --dev nexusphp/tachycardia
Tachykardie unterstützt diese Parameter:
Zeitlimit – Zeitlimit in Sekunden, das für alle Tests durchgesetzt werden soll. Alle Tests, die diesen Wert überschreiten, werden als langsam betrachtet. Standard: 1,00
report-count – Anzahl der langsamen Tests, die im Konsolenbericht angezeigt werden sollen. Dies wird im Github-Aktionsbericht ignoriert. Standard: 10
Präzision – Grad der Genauigkeit der Dezimalstellen der für den Test verbrauchten Zeit und des zugewiesenen Zeitlimits. Standard: 4
format – Das Format des Renderers für die Konsole.
ci-format – Das Format des Renderers für das CI.
Rendererformate für die Konsole und CI können folgende sein:
Format | Für Konsole? | Für CI? | Bemerkungen |
---|---|---|---|
Liste | Standard für Konsole | ||
Tisch | |||
Github | Standard für CI | ||
Gitlab | |||
Teamcity |
Um die Erweiterung mit ihren Standardkonfigurationsoptionen zu verwenden, können Sie einfach Folgendes zu Ihrer Datei phpunit.xml.dist
oder phpunit.xml
hinzufügen.
<?xml version="1.0"kodierung="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" farben="true" beStrictAboutOutputDuringTests="true" beStrictAboutTodoAnnotatedTests="true" failOnRisky="true" failOnWarning="true"><!-- Ihre anderen PHPUnit-Konfigurationen hier --><extensions> <bootstrap class="NexusPHPUnitTachycardiaTachycardiaExtension" /> </extensions> </phpunit>
Führen Sie nun vendor/bin/phpunit
aus. Wenn es Testfälle gibt, bei denen der Zeitaufwand die konfigurierten Zeitlimits überschreitet, werden diese nach Abschluss aller Tests in der Konsole angezeigt.
Wenn Sie eine oder mehrere der verfügbaren Optionen anpassen möchten, können Sie einfach den Eintrag in Ihrer Datei phpunit.xml.dist
oder phpunit.xml
ändern.
<?xml version="1.0"kodierung="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" farben="true" beStrictAboutOutputDuringTests="true" beStrictAboutTodoAnnotatedTests="true" failOnRisky="true" failOnWarning="true"><!-- Ihre anderen PHPUnit-Konfigurationen hier --><extensions> <bootstrap class="NexusPHPUnitTachycardiaTachycardiaExtension"> <parameter name="time-limit" value="2.00" /> <parameter name="report-count" value="30" /> <parameter name="precision" value="2" /> <parameter name="format" value="table" /> <parameter name="ci-format" value="github" /> </bootstrap> </extensions> </phpunit>
Langsame Tests melden
Aktivieren/deaktivieren Sie die Konsolenberichterstattung mithilfe der Umgebungsvariablen
Aktivieren/deaktivieren Sie die Profilerstellung in Github-Aktionen
Benutzerdefinierte Zeitlimits
Festlegen benutzerdefinierter Zeitlimits pro Test
Festlegen benutzerdefinierter Zeitlimits pro Klasse
Deaktivieren von Zeitlimits pro Test oder pro Klasse
Verwenden Sie stattdessen Attribute
Ergebnisse tabellarisch darstellen statt einfach rendern
Führen Sie langsame Tests erneut durch, um zu sehen, ob diese jetzt schnell sind
Upgrade von v1.x auf v2.x? Weitere Informationen finden Sie im UPGRADING-Leitfaden.
Beiträge sind herzlich willkommen. Wenn Sie eine Verbesserung oder Fehlerbehebung sehen, öffnen Sie jetzt eine PR!
Lesen Sie mehr über den Beitrag zur Nexus-Tachykardie.
Tachykardie wurde von johnkary/phpunit-speedtrap
inspiriert, jedoch mit anabolen Steroiden injiziert.
Tachykardie ist eigentlich ein medizinischer Begriff, der sich auf eine Herzfrequenz bezieht, die über der normalen Ruhefrequenz von im Allgemeinen über 100 Schlägen pro Minute liegt.
Diese Bibliothek ist unter der MIT-Lizenz lizenziert.