Skip to main content

¿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.
La documentación oficial recomienda usar las pruebas de navegador de Pest 4 para proyectos nuevos. Usa esta página cuando ya utilices Dusk en un proyecto existente o cuando quieras aprovechar la API de Dusk.

Instalación

Primero instala Google Chrome y añade Dusk como dependencia de desarrollo.
Si necesitas ajustar la versión de ChromeDriver usa el comando 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.
Durante la ejecución de Dusk se hace una copia de seguridad de .env y se aplica temporalmente el contenido de .env.dusk.local.

Prueba básica de navegador

Genera un test y ejecútalo con php artisan dusk.
Para reejecutar solo las pruebas fallidas:

Ejemplo de operaciones básicas

visit(), type(), press() y assertSee() son las operaciones más habituales en Dusk.
En las pruebas de Dusk no se usa RefreshDatabase. Tal y como indica la documentación oficial, usa DatabaseMigrations o DatabaseTruncation para reiniciar los datos entre pruebas.

Patrón Page Object

Al probar pantallas complejas, crear un page object con dusk:page facilita el mantenimiento.
Define 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 ejecutar php 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.).
Última modificación el 13 de julio de 2026