Wat is Laravel Dusk?
Laravel Dusk is een E2E-testtool die een echte browser bestuurt om je volledige schermen te verifiëren.Standaard kun je tests uitvoeren met ChromeDriver zonder apart een Selenium-server op te zetten.
Installatie
Installeer eerst Google Chrome en voeg Dusk toe als development-afhankelijkheid.dusk:chrome-driver.
Omgevingsconfiguratie (.env.dusk.local)
Om Dusk-specifieke omgevingsvariabelen te gebruiken, maak je in de projectroot een .env.dusk.{environment} aan.Voor een lokale omgeving gebruik je
.env.dusk.local.
.env geback-upt en wordt de inhoud van .env.dusk.local tijdelijk toegepast.
Basis-browsertests
Genereer een test en voer hem uit metphp artisan dusk.
Voorbeeld van basisbewerkingen
visit(), type(), press() en assertSee() zijn de meest gebruikte bewerkingen in Dusk.
Het page-objectpatroon
Bij het testen van complexe schermen wordt je code beter onderhoudbaar als je metdusk:page page objects maakt.
tests/Browser/Pages/Login.php definieer je url() en elements(), die je vervolgens in je tests hergebruikt.
Screenshots en debuggen
Bij het onderzoeken van fouten is het opslaan van screenshots en consolelogs effectief.- Screenshots:
tests/Browser/screenshots - Consolelogs:
tests/Browser/console
Uitvoeren in CI (GitHub Actions)
In GitHub Actions start je ChromeDriver en de ingebouwde server van Laravel voordat jephp artisan dusk uitvoert.
De uitvoeringsflow van Dusk
Officiële documentatie
Laravel Dusk — officiële documentatie
De volledige Dusk-API (wachten, assertions, toetsenbordacties, iframe-bewerkingen, enz.) vind je in de officiële documentatie.