E2E 테스트 도구 선택

상태

승인

후보군

방안설명
PlaywrightMicrosoft 제공. 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 캐시 관리 필요