Skip to main content

Qu’est-ce que Laravel Dusk

Laravel Dusk est un outil de test E2E qui pilote un vrai navigateur pour vérifier l’écran dans son ensemble.
Par défaut, il vous permet d’exécuter des tests avec ChromeDriver sans avoir à préparer un serveur Selenium séparé.
La documentation officielle recommande également Pest 4 pour les tests de navigateur dans les nouveaux projets. Utilisez cette page si vous continuez avec Dusk dans un projet existant ou si vous souhaitez utiliser l’API de Dusk.

Installation

Installez d’abord Google Chrome, puis ajoutez Dusk comme dépendance de développement.
Pour ajuster la version de ChromeDriver, utilisez la commande dusk:chrome-driver.

Configuration d’environnement (.env.dusk.local)

Pour utiliser des variables d’environnement spécifiques à Dusk, créez un fichier .env.dusk.{environment} à la racine du projet.
En environnement local, utilisez .env.dusk.local.
Pendant l’exécution de Dusk, le fichier .env est sauvegardé et le contenu de .env.dusk.local est temporairement appliqué.

Tests de navigateur de base

Générez un test et exécutez-le avec php artisan dusk.
Pour réexécuter uniquement les tests échoués :

Exemple d’opérations de base

visit(), type(), press() et assertSee() sont les opérations les plus courantes avec Dusk.
N’utilisez pas RefreshDatabase dans les tests Dusk. Comme le précise la documentation officielle, utilisez DatabaseMigrations ou DatabaseTruncation pour réinitialiser les données entre les tests.

Pattern Page Object

Pour tester des écrans complexes, générer un page object avec dusk:page facilite la maintenance.
Dans tests/Browser/Pages/Login.php, définissez url() et elements(), puis réutilisez-les dans le test.

Captures d’écran et débogage

Pour analyser les échecs, sauvegarder des captures d’écran et les logs de la console est très utile.
  • Captures d’écran : tests/Browser/screenshots
  • Logs de console : tests/Browser/console

Exécution en CI (GitHub Actions)

Sur GitHub Actions, démarrez ChromeDriver et le serveur intégré de Laravel avant d’exécuter php artisan dusk.

Flux d’exécution de Dusk

Documentation officielle

Laravel Dusk — Documentation officielle

Consultez l’API complète de Dusk (attentes, assertions, clavier, iframes, etc.) dans la documentation officielle.
Dernière modification le 13 juillet 2026