테스트컨테이너란 ?
테스트 환경에서 독립적으로 실행되는 컨테이너로, 자바 라이브러리이다. 테스트 컨테이너를 사용함으로써 실제 환경과 유사하게 테스트 환경을 구사할 수 있고, 다양한 자동화가 가능하다.
일반적으로 테스트 환경을 구성할 때 4가지 방식을 따른다.
1. 로컬 db
2. 인메모리 db (h2)
3. docker
4. test container
테스트 컨테이너는 3번 도커의 방식과 유사하다고 할 수 있지만 보다 나은 편의성을 제공한다.
- 자바 언어만으로 테스트 환경 구성
- docker를 따로 클린해주어야 하는 번거로움 없음
무엇보다도 포트를 알아서 잡아주기 때문에 포트가 안잡혀서 docker db와 연동할 때 애먹는 문제를 겪지 않아도 된다!
test container 환경 구성하기
// testcontainers
testImplementation 'org.testcontainers:spock:1.17.1'
testImplementation 'org.testcontainers:mariadb:1.17.1'
yml 파일 구성 (test내의 resource 폴더 밑)
spring:
datasource:
driver-class-name: org.testcontainers.jdbc.ContainerDatabaseDriver
url: jdbc:tc:mariadb:10:///
jpa:
hibernate:
ddl-auto: create
show-sql: true
kakao:
rest:
api:
key: ${KAKAO_REST_API_KEY}
사용 사례
test container를 사용한 crud 테스트 중
docker ps 명령어로 실시간 도커로 올라오는 컨테이너를 확인해보면 다음과 같다.
https://www.testcontainers.org
reference.
10개 프로젝트로 완성하는 백엔드 웹개발(Java/Spring) 초격차 패키지 Online - part 7. 장원용님
반응형
'Programming' 카테고리의 다른 글
groovy 언어 Spock 프레임워크 테스트 환경 구성하기 (0) | 2023.05.23 |
---|---|
맥 m1에서 virtualbox 다운받기 (0) | 2023.02.17 |