Combinaison de test Laravel Dusk autonome, qui ne nécessite pas le framework Laravel lui-même.
Laravel Dusk fournit une API d'automatisation et de test de navigateur expressive et facile à utiliser. Par défaut, Dusk ne vous oblige pas à installer JDK ou Selenium sur votre machine. Au lieu de cela, Dusk utilise un pilote Chrome autonome. Cependant, vous êtes libre d'utiliser tout autre pilote Selenium de votre choix.
Pour commencer, vous devez ajouter la dépendance unglud/dusker Composer à votre projet :
composer require --dev unglud/dusker
Ensuite, vous devez copier tous les fichiers nécessaires dans votre répertoire de travail. La commande ci-dessous le fera pour vous. Il crée (ou utilise un répertoire tests
existant) et y place les fichiers. En outre, il copie l'utilitaire de console artisan
dans le répertoire racine de votre projet. Si vous possédez déjà ce fichier, il sera écrasé !
Le fichier .env.dusk
se trouvera également à la racine de votre projet, que vous devrez renommer en .env
ou copier son contenu sur votre fichier existant.
composer run-script post-install-cmd -d ./vendor/unglud/dusker
Si vous souhaitez que ces fichiers soient mis à jour automatiquement à chaque fois que vous mettez à jour ce package, vous pouvez ajouter ceci à votre fichier composer.json
:
"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" } }
Comme vous le remarquez, le fichier .env.dusk
n'est pas inclus pour simplifier les choses.
Après avoir installé le package, les commandes Artisan seront disponibles à partir de votre projet racine. Exécutez la commande dusk:install
Artisan :
php artisan dusk:install
Essayez maintenant d'exécuter un test pour vous assurer que tout fonctionne
php artisan dusk
Après cette partie, vous pouvez utiliser la documentation officielle de Dusk sur le site Web de Laravel, car elle fonctionnera exactement comme elle a été conçue par Taylor Otwell.
Souvent, vous testerez des pages qui nécessitent une authentification. Vous pouvez utiliser la méthode loginAs de Dusk afin d'éviter d'interagir avec l'écran de connexion lors de chaque test. La méthode loginAs accepte un login
et password
utilisateur :
$this->browse(function (Browser $browser) { $browser->loginAs('username', 'password') ->visit('/home'); });
Après avoir utilisé la méthode loginAs, la session utilisateur sera conservée pour tous les tests du fichier.
Comme nous n'avons pas accès à Auth
et Router
natifs de Laravel, parce que nous l'utilisons sans Laravel, nous devons configurer la fonctionnalité de connexion. Dans .env
vous devez spécifier LOGIN_ENDPOINT
-- chemin d'accès à votre répertoire public où Dusker copiera le fichier qui sera accessible depuis un navigateur. Par défaut, c'est http://example.com/_dusker/login.php
. Deuxième LOGIN_IMPLEMENTATION
- chemin d'accès à votre classe, qui utilise la logique de votre projet permettant l'authentification. Vous pouvez utiliser /tests/LoginManagerExample.php
comme exemple de ce à quoi cela devrait ressembler.
Dusker est publié sous la licence MIT. Consultez le fichier LICENSE fourni pour plus de détails.