Laravel Dusk란
Laravel Dusk는 브라우저를 실제로 조작해서 화면 전체를 검증하는 E2E 테스트 도구입니다.기본적으로 Selenium 서버를 별도로 준비하지 않아도 ChromeDriver로 테스트를 실행할 수 있습니다.
설치
먼저 Google Chrome을 설치하고, Dusk를 개발 의존성으로 추가합니다.dusk:chrome-driver 명령을 사용합니다.
환경 설정(.env.dusk.local)
Dusk 전용 환경 변수를 사용하려면 프로젝트 루트에 .env.dusk.{environment}를 생성합니다.로컬 환경이라면
.env.dusk.local을 사용합니다.
.env가 백업되고, .env.dusk.local의 내용이 일시적으로 적용됩니다.
기본 브라우저 테스트
테스트를 생성하고php artisan dusk로 실행합니다.
기본 조작 예시
visit(), type(), press(), assertSee()는 Dusk에서 가장 자주 사용하는 조작입니다.
페이지 객체 패턴
복잡한 화면을 테스트할 때는dusk:page로 페이지 객체를 만들면 유지 보수가 쉬워집니다.
tests/Browser/Pages/Login.php에서 url()이나 elements()를 정의하고, 테스트 쪽에서 재사용합니다.
스크린샷과 디버깅
실패 조사에서는 스크린샷과 콘솔 로그 저장이 유용합니다.- 스크린샷:
tests/Browser/screenshots - 콘솔 로그:
tests/Browser/console
CI(GitHub Actions)에서 실행하기
GitHub Actions에서는 ChromeDriver와 Laravel의 내장 서버를 기동한 후php artisan dusk를 실행합니다.
Dusk 실행 플로우
공식 문서
Laravel Dusk — 공식 문서
Dusk의 모든 API(대기, 어서션, 키보드 조작, iframe 조작 등)는 공식 문서에서 확인해 주세요.