Eigenständiger Laravel Dusk-Testanzug, der kein Laravel-Framework selbst erfordert.
Laravel Dusk bietet eine ausdrucksstarke, benutzerfreundliche Browser-Automatisierungs- und Test-API. Standardmäßig erfordert Dusk nicht, dass Sie JDK oder Selenium auf Ihrem Computer installieren. Stattdessen verwendet Dusk einen eigenständigen Chrome-Treiber. Es steht Ihnen jedoch frei, jeden anderen Selenium-Treiber Ihrer Wahl zu verwenden.
Um zu beginnen, sollten Sie Ihrem Projekt die Composer-Abhängigkeit unglud/dusker hinzufügen:
composer require --dev unglud/dusker
Als nächstes müssen Sie alle notwendigen Dateien in Ihr Arbeitsverzeichnis kopieren. Der folgende Befehl erledigt das für Sie. Es erstellt ein tests
(oder verwendet ein vorhandenes) und legt dort Dateien ab. Außerdem kopiert es das Konsolendienstprogramm artisan
in Ihr Projektstammverzeichnis. Wenn Sie diese Datei bereits haben, wird sie überschrieben!
Die Datei .env.dusk
befindet sich ebenfalls in Ihrem Projektstammverzeichnis. Sie müssen sie in .env
umbenennen oder den Inhalt in Ihr vorhandenes kopieren.
composer run-script post-install-cmd -d ./vendor/unglud/dusker
Wenn Sie möchten, dass diese Dateien bei jedem Update dieses Pakets automatisch aktualisiert werden, können Sie Folgendes zu Ihrer composer.json
-Datei hinzufügen:
"scripts": { "post-install-cmd": [ "DuskerCopyFile::copy" ], "post-update-cmd": [ "DuskerCopyFile::copy" ] }, "extra": { "copy-file": { "vendor/unglud/dusker/src/example/": "tests/", "vendor/unglud/dusker/artisan": "artisan" } }
Wie Sie bemerken, ist die Datei .env.dusk
zur Vereinfachung dort nicht enthalten.
Nach der Installation des Pakets sind Artisan-Befehle in Ihrem Root-Projekt verfügbar. Führen Sie den Befehl dusk:install
Artisan aus:
php artisan dusk:install
Führen Sie nun einen Test durch, um sicherzustellen, dass alles funktioniert
php artisan dusk
Nach diesem Teil können Sie die offizielle Dokumentation für Dusk auf der Laravel-Website verwenden, da sie genau so funktioniert, wie sie von Taylor Otwell entworfen wurde.
Häufig testen Sie Seiten, die eine Authentifizierung erfordern. Sie können die loginAs-Methode von Dusk verwenden, um die Interaktion mit dem Anmeldebildschirm bei jedem Test zu vermeiden. Die loginAs-Methode akzeptiert einen login
und password
:
$this->browse(function (Browser $browser) { $browser->loginAs('username', 'password') ->visit('/home'); });
Nach Verwendung der loginAs-Methode wird die Benutzersitzung für alle Tests in der Datei aufrechterhalten.
Da wir keinen Zugriff auf natives Auth
und Router
von Laravel haben, müssen wir die Anmeldefunktion einrichten, da wir es ohne Laravel verwenden. In .env
sollten Sie LOGIN_ENDPOINT
angeben – den Pfad zu Ihrem öffentlichen Verzeichnis, in das Dusker die Datei kopiert, auf die über einen Browser zugegriffen werden kann. Standardmäßig ist es http://example.com/_dusker/login.php
. Zweite LOGIN_IMPLEMENTATION
– Pfad zu Ihrer Klasse, die die Logik Ihres Projekts nutzt und die Authentifizierung ermöglicht. Sie können /tests/LoginManagerExample.php
als Beispiel dafür verwenden, wie es aussehen sollte.
Dusker wird unter der MIT-Lizenz veröffentlicht. Einzelheiten finden Sie in der mitgelieferten LICENSE-Datei.