Ich laufe php bin/magento dev:tests:run static
, um meine Codequalität zu überprüfen, aber es dauert sehr lange. Gibt es eine Möglichkeit, sie für ein Modul und / oder ein Thema auszuführen?
magento2.2
tests
Marius
quelle
quelle
Antworten:
Ja, es gibt eine Möglichkeit, eine benutzerdefinierte Testsuite entsprechend Ihren Anforderungen auszuführen. Statische Tests werden mit phpunit ausgeführt und die Konfigurationsdatei befindet sich in dev / tests / static / phpunit.xml.dist
Also, aus diesem Pfad heraus:
cp phpunit.xml.dist phpunit.xml
php ../../../vendor/bin/phpunit --testsuite="YOUR TESTSUITE NAME"
Das ist alles :)
Es gibt weitere Optionen wie das Ausführen dieser Tests über Ihre IDE, das Anpassen der Testsuite durch Ausschließen oder Auflisten von Dateien usw. Der grundlegendste Ansatz wurde oben beschrieben.
Und eine kleine Ergänzung: Jedes Preset verwendet eine Art Bootstrap, z. static / testsuite / Magento / Test / Js / LiveCodeTest.php für die statische Javascript-Code-Analyse; Es wird Blacklist / Whitelist * .txt verwendet. Sie müssen diese Dateien in Ihren Suiten verwenden und anpassen. Am Ende erfordert es also etwas Arbeit, ist aber machbar.
Konfigurationsbeispiel für weniger statische Tests
Nehmen wir an, wir haben ein Modul Modul / Test mit verwandten * .less-Dateien
Kopieren Sie dev / tests / static / phpunit.xml.dist => dev / tests / static / phpunit.xml. Ändern Sie es dann so, dass es wie folgt aussieht:
Das Wichtigste ist, dass unsere Testsuite den Attributnamen = "Test Sample" und eine Ziel-PHP-Datei mit Tests hat, die auch als Bootstrap-Datei dient. Sie können entweder Ihre eigenen schreiben oder vorhandene kopieren und ändern sowie den Pfad ändern. Dies bedeutet, dass die gesamte Konfiguration im Modulverzeichnis gespeichert werden kann, aber für dieses Tutorial werde ich so einfach wie möglich vorgehen. Als Referenz überprüfen Sie bitte Hersteller / Magento / Magento2-Basis, dort finden Sie in dev / tests / static eine ähnliche Datei.
Öffnen Sie static / testsuite / Magento / Test / Less / _files / whitelist / common.txt und fügen Sie Glob-Muster oder Muster für den Speicherort der zu testenden Dateien hinzu, z. App / Code / Test / Modul / Ansicht / Web
Öffnen Sie nun das Terminal und gehen Sie zu dev / test / static und führen Sie es aus
php ../../../vendor/bin/phpunit --testsuite="Test Sample"
Das ist alles für weniger Testsuite. Für jedes Testpaket können Sie dasselbe tun. Details können variieren, aber der allgemeine Ansatz ist wie von mir beschrieben.
Und letztes Wort: Aus meiner Sicht ist es besser, Live-Linters zu verwenden, die entweder von ide oder Plugins dafür bereitgestellt werden, oder im Fall von CI Tools zu verwenden, die ein bestimmtes CI-Tool bereitstellt.
quelle
phpunit.xml
aussehen wie im Falle Ich möchte alle die statischen Tests für ein Modul namens laufenTest_Sample
in sichapp/code/Test/Sample/
.