개요
E2E 테스트 도구로 Playwright를 도입하여 주요 사용자 플로우를 자동으로 검증할 수 있는 테스트 환경을 구축한다.
핵심 방침
- PR CI에서 도는 E2E는 결정적 이어야 한다 — 같은 코드면 항상 같은 결과
- 따라서 API는 실서버 대신 Playwright 내장
page.route()로 목킹한다 (추가 의존성 없음)
- 실서버(dev API) 기반 테스트는 데이터 상태·서버 가용성에 따라 결과가 흔들려 CI 신뢰도를 해침
- MSW 도입은 테스트가 늘어나 핸들러 중복이 부담될 때 별도 이슈로 재논의
- 실서버 연동 검증(스모크 테스트)은 본 이슈 범위에서 제외, 후속 이슈로 진행
작업 상세 내용
설치 및 기본 설정
스크립트 및 환경 구성
API 목킹
인증 상태 처리
샘플 테스트 작성
CI 연동
참고 사항
- SSE, WebBridge 등 실시간 기능은 목킹이 까다로워 초기 E2E 범위에서 제외
- 핵심 플로우 테스트 케이스 작성은 환경 구축 완료 후 후속 이슈로 진행
- 실서버(dev API) 대상 스모크 테스트(nightly 등)는 필요성 확인 후 후속 이슈로 진행
개요
E2E 테스트 도구로 Playwright를 도입하여 주요 사용자 플로우를 자동으로 검증할 수 있는 테스트 환경을 구축한다.
핵심 방침
page.route()로 목킹한다 (추가 의존성 없음)작업 상세 내용
설치 및 기본 설정
@playwright/test설치 —pnpm --filter piki-web add -D @playwright/testpnpm exec playwright installapps/web/playwright.config.ts작성baseURL:http://localhost:3000webServer로컬/CI 분리pnpm dev+reuseExistingServer: !process.env.CI(띄워둔 dev 서버 재사용)next build && next start(프로덕션 빌드 기준 — 빠르고 안정적)devices['iPhone 14'])apps/web/e2e스크립트 및 환경 구성
apps/web/package.json에 테스트 스크립트 추가test:e2e— 전체 테스트 실행test:e2e:ui— UI 모드 실행 (디버깅용).gitignore에 산출물 추가 —test-results/,playwright-report/,playwright/.auth/NEXT_PUBLIC_API_URL등 목킹 기준으로 정리,.env.test필요 시 분리)API 목킹
page.route()기반 목킹 패턴 정립 (팀 응답 규약{ status, data, detail, code }형식 준수)src/mocks/목 데이터 재활용인증 상태 처리
storageState생성 (global setup) 후 테스트 간 재사용샘플 테스트 작성
CI 연동
pnpm exec playwright install --with-deps~/.cache/ms-playwright)참고 사항