E2E 테스트 도구 선택
상태
승인
후보군
| 방안 | 설명 |
|---|---|
| Playwright | Microsoft 제공. page.on('response') 훅으로 API 실패 자동 감지. GitHub Actions 공식 액션 제공. Headless 기본 지원 |
| Cypress | 널리 사용되는 E2E 도구. 네트워크 인터셉트 기능 있으나 흐름 중단·재개가 복잡함 |
| Selenium | 레거시 E2E 도구. 다양한 언어 바인딩 지원 |
결정
Playwright
결정 이유
- Next.js 공식 E2E 권장 도구 (
@playwright/test) page.on('response')훅으로 API 실패를 코드 변경 없이 자동 감지 가능 — R-09 요구사항 구현 용이- GitHub Actions 공식 액션 존재 (
microsoft/playwright-github-action) — CI 설정 최소화 - Headless 모드 기본 지원으로 CI 환경에 최적화
- vitest와 함께 프로젝트 분리 방식으로 공존 가능
검토 대안
| 방안 | 기각 이유 |
|---|---|
| Cypress | 메모리 소비가 높고 CI 실행이 느림. 네트워크 인터셉트 후 흐름 재개가 복잡해 API 모니터링 구현 난이도 높음 |
| Selenium | 레거시 API로 설정이 복잡하고 유지보수 비용이 높음 |
트레이드 오프
- 득: API 실패 자동 감지 간편, CI 최적화, Next.js 생태계 통합
- 실: Playwright 러닝 커브 존재, 브라우저 바이너리 CI 캐시 관리 필요