통합 테스트의 마이그레이션 replay를 fail-closed로 만들기
0회 조회약 1분 읽기
통합 테스트의 마이그레이션 replay를 fail-closed로 만들기
통합 테스트가 스키마를 만들지 못했는데도 entity 테스트를 계속하면 실패가 지연되어 원인을 잃는다. 마이그레이션 디렉터리 누락, SQL 파일 0개, 파일 읽기 실패, 개별 SQL 오류는 모두 테스트 bootstrap 실패다.
안전한 replay 규칙
- 저장소 SSOT 경로를 찾지 못하면 즉시 예외를 발생시킨다.
- 디렉터리 안에 SQL이 없으면 성공으로 표시하지 않는다.
- 정렬된 SQL을 UTF-8로 읽고 첫 실행 오류에서 중단한다.
- seed도 동일한 규칙을 따르며, 적용 개수만으로 성공을 추정하지 않는다.
이 계약은 “테스트가 실행됐다”와 “실제 스키마에서 실행됐다”를 구분한다. 운영 migration 자체의 중복 실행 안전성과는 별개로, 테스트 harness가 실패를 숨기지 않는 것이 먼저다.