-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[REFACTOR] 테스트코드에서 Testcontainers를 사용하도록 변경 #840
Comments
Testcontainer 작업 중 떠오른 할 일 1
|
Testcontainer 작업 중 떠오른 할 일 2
|
Testcontainer 작업 중 떠오른 할 일 3
|
📌 어떤 기능을 리팩터링 하나요?
현재 테스트 환경의 applcation.yml 파일을 gitignore에 등록해야 테스트를 정상적으로 실행할 수 있습니다.
다음의 문제가 있습니다.
그래서 테스트 코드를 실행할 때, 로컬 DB를 사용하는 대신 Testcontainers를 사용하도록 변경합니다.
생각해볼점
테스트컨테이너를 사용할 경우와 사용하지 않을 경우의 트레이드오프는 뚜렷해요.
사용할 경우 application.yml, CI 환경변수 등 테스트 환경 관리 비용이 줄어듦
vs
사용하지 않을 경우 테스트(
@SpringBootTest
,@DataJpaTest
) 속도가 더 빠름지금 우리의 외부 프로세스 의존성은 MySQL 데이터베이스 뿐이죠.
그러나 캐시를 사용하는 등의 외부 의존성이 추가되면 컨테이너를 더 실행해야 할 수 있어요.
해당 의존성이 통합테스트에서도 필요하니 테스트 패키지의 application.yml 파일과 CI 환경의 application.yml을 관리해줘야겠죠??
Testcontainers는 스프링 코드를 통해 이 과정을 자동화해줘요.
그러나 테스트를 1개를 돌리든 100개를 돌리든 컨테이너를 실행하기 위한 시간이 처음에 30초 ~ 1분 정도 필요해요.
이렇게 될 경우 이미 실행된 컨테이너를 사용하는 기존 방식에 비해 슬라이스테스트, 통합테스트에서 오래 걸리겠죠?
⏳ 예상 소요 시간 (예상 해결 날짜)
8시간
🔍 참고할만한 자료(선택)
Testcontainers Official
Testcontainers | Maven Repository
The text was updated successfully, but these errors were encountered: