Skip to main content

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.
De officiële documentatie beveelt voor nieuwe projecten ook de browsertests van Pest 4 aan. Gebruik deze pagina als je Dusk in een bestaand project gebruikt of de Dusk-API wilt gebruiken.

Installatie

Installeer eerst Google Chrome en voeg Dusk toe als development-afhankelijkheid.
Wil je de ChromeDriver-versie aanpassen, gebruik dan het commando 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.
Tijdens het uitvoeren van Dusk wordt .env geback-upt en wordt de inhoud van .env.dusk.local tijdelijk toegepast.

Basis-browsertests

Genereer een test en voer hem uit met php artisan dusk.
Om alleen de gefaalde tests opnieuw uit te voeren:

Voorbeeld van basisbewerkingen

visit(), type(), press() en assertSee() zijn de meest gebruikte bewerkingen in Dusk.
In Dusk-tests gebruik je geen RefreshDatabase. Gebruik, zoals in de officiële documentatie staat, DatabaseMigrations of DatabaseTruncation om de data tussen tests te initialiseren.

Het page-objectpatroon

Bij het testen van complexe schermen wordt je code beter onderhoudbaar als je met dusk:page page objects maakt.
In 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 je php 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.
Laatst gewijzigd op 6 september 2026