¿Qué es Laravel Dusk?
Laravel Dusk es una herramienta de pruebas E2E que opera realmente un navegador para verificar la pantalla completa.Por defecto puedes ejecutar las pruebas con ChromeDriver, sin necesidad de preparar un servidor Selenium aparte.
Instalación
Primero instala Google Chrome y añade Dusk como dependencia de desarrollo.dusk:chrome-driver.
Configuración del entorno (.env.dusk.local)
Para usar variables de entorno específicas de Dusk, crea .env.dusk.{environment} en la raíz del proyecto.Para el entorno local se usa
.env.dusk.local.
.env y se aplica temporalmente el contenido de .env.dusk.local.
Prueba básica de navegador
Genera un test y ejecútalo conphp artisan dusk.
Ejemplo de operaciones básicas
visit(), type(), press() y assertSee() son las operaciones más habituales en Dusk.
Patrón Page Object
Al probar pantallas complejas, crear un page object condusk:page facilita el mantenimiento.
url() y elements() en tests/Browser/Pages/Login.php y reutilízalo en las pruebas.
Capturas de pantalla y depuración
Para investigar fallos es útil guardar capturas y logs de consola.- Capturas:
tests/Browser/screenshots - Logs de consola:
tests/Browser/console
Ejecución en CI (GitHub Actions)
En GitHub Actions se inicia ChromeDriver y el servidor integrado de Laravel antes de ejecutarphp artisan dusk.
Flujo de ejecución de Dusk
Documentación oficial
Laravel Dusk — Documentación oficial
Consulta la documentación oficial para conocer toda la API de Dusk (esperas, aserciones, teclado, operaciones sobre iframes, etc.).