Wäre es nicht großartig, wenn Ihre PHPUnit-Tests automatisch erneut ausgeführt würden, wenn Sie Code ändern? Dieses Paket kann genau das tun.
Wenn das Paket installiert ist, können Sie Folgendes tun:
phpunit-watcher watch
So sieht es aus:
Dadurch werden die Tests ausgeführt und jedes Mal erneut ausgeführt, wenn eine Datei im Verzeichnis app
, src
oder tests
geändert wird.
Möchten Sie einige Argumente an PHPUnit übergeben? Kein Problem, einfach anheften:
phpunit-watcher watch --filter=it_can_run_a_single_test
In seinem hervorragenden Vortrag auf der Laracon EU 2017 zeigt Amo Chohan unseren PHPUnit-Watcher in Aktion.
Wir investieren viele Ressourcen in die Erstellung erstklassiger Open-Source-Pakete. Sie können uns unterstützen, indem Sie eines unserer kostenpflichtigen Produkte kaufen.
Wir freuen uns sehr, dass Sie uns eine Postkarte aus Ihrer Heimatstadt schicken und erwähnen, welches unserer Pakete Sie verwenden. Unsere Adresse finden Sie auf unserer Kontaktseite. Wir veröffentlichen alle erhaltenen Postkarten auf unserer virtuellen Postkartenwand.
Sie können dieses Paket global wie folgt installieren
composer global require spatie/phpunit-watcher
Danach kann phpunit-watcher watch
in jedem Verzeichnis auf Ihrem System ausgeführt werden.
Alternativ können Sie das Paket lokal als Entwicklungsabhängigkeit in Ihrem Projekt installieren
composer require spatie/phpunit-watcher --dev
Bei lokaler Installation können Sie es mit vendor/bin/phpunit-watcher watch
ausführen
Bei allen Beispielen wird davon ausgegangen, dass Sie das Paket global installiert haben. Wenn Sie sich für die lokale Installation entschieden haben, stellen Sie überall dort, wo phpunit-watcher
erwähnt wird, vendor/bin/
voran.
Sie können den Watcher starten mit:
phpunit-watcher watch
Dadurch werden die Tests ausgeführt und jedes Mal erneut ausgeführt, wenn eine Datei im src
oder tests
-Verzeichnis geändert wird.
Möchten Sie einige Argumente an PHPUnit übergeben? Kein Problem, einfach anheften:
phpunit-watcher watch --filter=it_can_run_a_single_test
Wenn Sie phpunit-watcher
über ein Composer-Skript ausführen, müssen Sie möglicherweise Eingaben umleiten, damit die interaktiven Befehle funktionieren, und das Standard-Timeout deaktivieren:
{
"scripts" : {
"test:watch" : [
" Composer \ Config::disableProcessTimeout " ,
" phpunit-watcher watch < /dev/tty "
]
}
}
Unter Windows wird TTY derzeit nicht unterstützt, daher wurde jegliche Interaktion deaktiviert. Während die Überwachung auf Änderungen funktioniert, müssen beim ersten Aufruf phpunit-watcher
alle Argumente für PHPUnit angegeben werden.
Bestimmte Aspekte des Verhaltens des Tools können geändert werden. Die Datei für Optionen kann .phpunit-watcher.yml
, phpunit-watcher.yml
oder phpunit-watcher.yml.dist
heißen. Das Tool sucht in dieser Reihenfolge nach einer Datei.
Wenn im Projektverzeichnis keine Konfigurationsdatei vorhanden ist, prüft das Tool, ob in einem der übergeordneten Verzeichnisse des Projektverzeichnisses eine Datei vorhanden ist.
Hier finden Sie einige Beispielinhalte. Lesen Sie weiter, um eine detailliertere Erklärung aller Optionen zu erhalten.
watch :
directories :
- src
- tests
fileMask : ' *.php '
notifications :
passingTests : false
failingTests : false
phpunit :
binaryPath : vendor/bin/phpunit
arguments : ' --stop-on-failure '
timeout : 180
Sie können die überwachten Verzeichnisse anpassen, indem Sie in Ihrem Projektverzeichnis eine Datei mit dem Namen .phpunit-watcher.yml
erstellen. Hier sind einige Beispielinhalte:
watch :
directories :
- src
- tests
exclude :
- lib
fileMask : ' *.php '
ignoreDotFiles : true
ignoreVCS : true
ignoreVCSIgnored : false
Weitere Einzelheiten finden Sie in der Dokumentation zum Finder.
Wenn bei großen Repositorys Leistungsverzögerungen auftreten, versuchen Sie, exclude
für alle großen Unterverzeichnisse hinzuzufügen, die Sie nicht überwachen müssen. Es kann auch hilfreich sein, die Optionen ignore...
zu aktivieren. Es ist außerdem wichtig sicherzustellen, dass Sie auch die Dateimaske '*.php'
verwenden.
Standardmäßig zeigt das Tool Desktop-Benachrichtigungen an, wenn die Tests erfolgreich sind oder nicht. Wenn Sie bestimmte Desktop-Benachrichtigungen deaktivieren möchten, aktualisieren Sie .phpunit-watcher.yml
indem Sie einen notifications
hinzufügen.
notifications :
passingTests : false
failingTests : false
Standardmäßig zeigt das Tool nach jeder Ausführung einen Helfer für Tastaturaktionen an. Sie können diese Hilfemeldungen ausblenden, indem Sie einen hideManual
-Schlüssel in .phpunit-watcher.yml
hinzufügen.
hideManual : true
Standardmäßig verwendet das Tool vendor/bin/phpunit
als standardmäßige PHPUnit-Binärdatei. Es kann jedoch nützlich sein, diesen Wert für Benutzer anpassen zu können, die eine Binärdatei an einem anderen Speicherort haben.
Sie können es in der Konfigurationsdatei .phpunit-watcher.yml
spezifizieren. Hier ist ein Beispiel:
phpunit :
binaryPath : ./vendor/phpunit/phpunit/phpunit
Wenn Sie bei jedem Watcher-Start dieselben Argumente an PHPUnit übergeben möchten, können Sie diese in der Konfigurationsdatei .phpunit-watcher.yml
angeben. Hier ist ein Beispiel:
phpunit :
arguments : ' --stop-on-failure '
Wenn Sie das Tool mit einigen Argumenten starten (z. B. phpunit-watcher watch --filter=my_favourite_test
), werden diese Argumente anstelle der in der Konfigurationsdatei angegebenen Argumente verwendet.
Weitere Informationen zu den letzten Änderungen finden Sie im CHANGELOG.
composer test
Weitere Informationen finden Sie unter BEITRAGEN.
Wenn Sie einen Sicherheitsfehler gefunden haben, senden Sie bitte eine E-Mail an [email protected], anstatt den Issue-Tracker zu verwenden.
Es steht Ihnen frei, dieses Paket zu verwenden (es ist MIT-lizenziert), aber wenn Sie es häufig verwenden, würden wir uns sehr freuen, wenn Sie uns eine Postkarte aus Ihrer Heimatstadt schicken und erwähnen, welches unserer Pakete Sie verwenden.
Unsere Adresse lautet: Spatie, Kruikstraat 22, 2018 Antwerpen, Belgien.
Wir veröffentlichen alle erhaltenen Postkarten auf unserer Firmenwebsite.
Wir haben mit der Erstellung dieses Pakets begonnen, nachdem wir diesen hervorragenden Artikel von Christoper Pitt gelesen hatten
Interaktive Befehle wurden von Jest inspiriert.
Die MIT-Lizenz (MIT). Weitere Informationen finden Sie in der Lizenzdatei.