Cos’è Laravel Dusk
Laravel Dusk è uno strumento di test E2E che opera realmente sul browser per verificare l’intera schermata.Per impostazione predefinita, puoi eseguire i test con ChromeDriver senza dover preparare a parte un server Selenium.
Installazione
Per prima cosa installa Google Chrome e aggiungi Dusk come dipendenza di sviluppo.dusk:chrome-driver.
Configurazione dell’ambiente (.env.dusk.local)
Per usare variabili d’ambiente dedicate a Dusk, crea .env.dusk.{environment} nella root del progetto.Per l’ambiente locale usa
.env.dusk.local.
.env viene salvato come backup e il contenuto di .env.dusk.local viene applicato temporaneamente.
Test di base del browser
Genera un test ed eseguilo conphp artisan dusk.
Esempio di operazioni di base
visit(), type(), press() e assertSee() sono le operazioni più usate in Dusk.
Pattern Page Object
Quando testi schermate complesse, creare un page object condusk:page facilita la manutenzione.
tests/Browser/Pages/Login.php definisci url() ed elements() e riutilizzali lato test.
Screenshot e debug
Per indagare i fallimenti è utile salvare screenshot e log della console.- Screenshot:
tests/Browser/screenshots - Log della console:
tests/Browser/console
Esecuzione in CI (GitHub Actions)
In GitHub Actions avvia ChromeDriver e il server incluso di Laravel e poi eseguiphp artisan dusk.
Flusso di esecuzione di Dusk
Documentazione ufficiale
Laravel Dusk — Documentazione ufficiale
Consulta la documentazione ufficiale per tutte le API di Dusk (attese, asserzioni, operazioni da tastiera, operazioni su iframe, ecc.).