서비스를 시작하고 연결하기
테스트에서 컨테이너를 시작한 뒤 실제 서비스를 이용하는 클라이언트를 연결한다. 컨테이너 내부 포트와 호스트에서 접속할 포트는 다를 수 있으므로 시작 결과에서 연결 정보를 얻어야 한다. 서버를 준비하는 라이브러리와 그 서버에 명령을 보내는 클라이언트는 서로 다른 역할이다.
범용 구성과 전용 모듈
범용 컨테이너에서는 이미지와 포트, 환경 변수, 대기 조건 등을 구성한다. 서비스별 모듈은 이런 반복 설정과 연결 정보 처리를 줄이는 데 도움이 된다. 다만 모듈이 제공하는 기본값이 프로젝트 요구와 맞는지는 확인한다. 이미지 다운로드가 필요한 첫 실행은 캐시가 있는 실행보다 오래 걸릴 수 있다.
비동기 준비와 정리
컨테이너와 클라이언트의 시작을 완료한 다음 검사를 실행하고 종료도 명시적으로 기다려야 한다. 준비가 실패하는 경로에서도 이미 만든 자원을 정리할 수 있게 구성한다. 여러 검사가 공유하는 데이터는 격리하고 사용하는 테스트 실행기의 시간 제한도 환경 비용에 맞춘다. 컨테이너에서 통과한 결과가 운영 환경의 모든 차이를 보장하는 것은 아니다.
관련 문서
Testcontainers Python / Testcontainers Go / Pact JS / Mock Service Worker