Unit / E2E Split

Unit은 빠른 피드백, E2E는 실제 연결의 실패 원인을 맡는다

두 테스트를 한 덩어리로 보지 않고 목적과 실패 자료를 분리하면 CI 결과 해석이 빨라집니다.

공통 준비

checkout → npm ci → build로 같은 커밋의 실행 가능한 상태를 만든다.

최종 판정

unit, e2e, coverage가 모두 통과해야 병합 후보가 된다.

Unit lane: 빠르게 깨지는 계약

  • 대상service, pipe, guard, controller 단위
  • 의존성mock 또는 stub으로 외부 연결 제거
  • 실패 의미로직 회귀, 입력 검증, 예외 처리 오류

E2E lane: 실제 연결을 확인

  • 대상HTTP 요청부터 DB 경계까지
  • 의존성test DB, Docker, seed 데이터
  • 실패 의미환경 준비, 모듈 연결, 인증 흐름 오류
Unit 실패

대부분 코드 수정으로 바로 돌아간다. 재실행보다 assertion과 mock을 확인한다.

E2E 실패

로그, DB 상태, 스크린샷을 함께 남겨 환경 문제와 코드 문제를 구분한다.

Coverage 실패

테스트가 있어도 기준 미달이면 병합을 막고 누락된 시나리오를 보강한다.