ReportPortal E2E 분석 & alpha 인증 ENOENT 근본 수정

앱린다(Rinda) · ReportPortal 26.x · 분석 + 수정 + 머지 완료 리포트
📅 2026-06-11 프로젝트 rinda-alpha 런치 50 · 스텝 5,383 PR #8516 ✅ merged → alpha commit 6cc3a8288

⚡ TL;DR

📊 테스트 상태 분포 (5,383 스텝)

PASSED 2,338 (56%) FAILED 1,294 (31%) SKIPPED 117 INTERRUPTED 71
실패 분류스텝비중성격
ENOENT user.json (인증 셋업 경로)1,17691%인프라 — 가짜 실패
실제 테스트 실패1189%코드/셀렉터

🔍 근본 원인 — storageState 경로 SSOT drift

auth.setup(setup project)은 매 런치 PASSEDuser.json을 정상 생성했다. 그런데 쓰는 곳과 읽는 곳의 경로가 갈렸다 —

Writer · auth.setup.tsE2E_ARTIFACT_DIR 무시
~/send-grid-test/e2e/playwright/.auth/user.json
(배포 트리, 파일 존재 ✓)
✗ 불일치
Reader · playwright.configE2E_ARTIFACT_DIR 적용
/artifacts/playwright/.auth/user.json
(디렉토리 자체가 없음 → ENOENT)

→ 인증 필요한 모든 chromium 테스트가 시작도 못 하고 cascade fail. 세 번째 reader(proposal-db-helpers.ts)도 배포 트리 경로를 하드코딩하고 있었다.

🛠️ 수정 — 공유 resolver로 3곳 통일

신규 e2e/scripts/storage-path.tsresolveStorageState() 하나를 writer·reader 3곳이 모두 경유. 경로 계산을 한 곳에 모아 drift를 구조적으로 차단.

파일역할변경
scripts/storage-path.tsSSOT신규 resolver
playwright.config.tsreaderresolver 적용
tests/auth.setup.tswriterresolver 적용 → /artifacts 정렬
…/proposal-db-helpers.tsreaderresolver 적용

검증 — writer·reader 경로 3/3 시나리오 완전 일치

✓ LOCAL  (artifact 미설정)  → e2e/playwright/.auth/user.json   (writer=reader)
✓ ALPHA  (/artifacts)        → /artifacts/playwright/.auth/user.json (writer=reader)
✓ SLOT   (절대경로 override)  → /artifacts/playwright/.auth/wt3.json  (writer=reader)
Playwright import 체인 로드 정상 (35 tests / 9 files) · tsc 0 error

🧾 남은 실제 실패 118건 (별도 추적)

에러건수진단
worker process exited (code=1)29워커 크래시 — 셋업 cascade 추정
영문 랜딩 [en] 키워드 미감지 (privacy/terms)24실제 i18n 버그
다음/Next 버튼 not visible10온보딩 셀렉터/UI 변경
locator waitFor Timeout 20s6느린 로드/요소 부재
IAM 페이지 primary 텍스트 미감지6어드민 IAM 렌더 회귀
PR #8516 보기 →