피드로 돌아가기
Two test runtimes, two coverage reports, one fragile merge
Dev.toDev.to
Frontend

단일 Runtime 기반 통합 테스트로 Coverage Merge 오차 제거

Two test runtimes, two coverage reports, one fragile merge

Kevin Julián Martínez Escobar2026년 5월 4일3intermediate

Context

Vitest와 Playwright 같은 서로 다른 Runtime 기반 테스트 도구 사용으로 인한 Coverage 데이터 분절 발생. nyc merge 등 heuristic한 병합 과정에서 Path mismatch로 인해 실제 커버리지가 최대 12%까지 누락되는 불안정한 CI 파이프라인 구조의 한계 직면.

Technical Solution

  • Vite dev server 기반의 단일 Browser Execution Context 내에서 Unit 및 Flow 테스트를 동시 실행하는 구조 설계
  • 동일한 Runtime 환경을 통한 Coverage 데이터 단일화로 별도의 Merge 단계 제거
  • DOM 기반의 Flow test를 우선 적용하여 실제 User Behavior와 Interaction 검증
  • Pure function 및 Edge-case 처리를 위한 Unit test를 보완적으로 배치하여 테스트 중복 방지
  • 동일한 describe, it, expect 인터페이스를 공유하는 통합 Runner 채택으로 테스트 코드 일관성 확보

1. 테스트 런타임 간의 Coverage 병합 과정에서 수치 불일치가 발생하는지 확인

2. User-visible 기능은 Flow-based test를 우선 적용하고, 복잡한 분기 로직만 Unit test로 분리

3. CI 환경의 Node 버전 차이로 인한 File Path 변경 가능성 검토

원문 읽기