Build 관련 문제 (테스트 관련 문제)
30
7 asked
다른 분들에게 도움이 될까 글을 작성합니다.
저는 윈도우 환경에서 InteliJ를 사용하고 CLI 화면이 편하기 때문에 WSL를 사용하여 도커를 사용했습니다.
해당 전에 문제 해결들은 자료가 없어서 해결 방안만 말씀드리겠습니다.
cloud... gradle 문제 해당 프로젝트가 One Driver에 있기 때문에 클라우드 상에 있는 그레이들이 안되는 것으로 알고 있습니다. 만약 프로젝트가 One Driver에 있다면 One driver 밖으로 이동 시켜주세요
WSL 도커를 실행해도 윈도우 환경에서는 컨테이너를 찾지 못하는 경우가 있기 때문에 Window 환경에서 도커를 실행 하세요
해당 예외들이 터진 후에 모든 테스트 로직에 대해 예외가 발생합니다.
BackendportfolioApplicationTests > contextLoads() FAILED
java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:143
Caused by: java.lang.IllegalStateException at LoadingCache.java:75
Caused by: java.lang.ExceptionInInitializerError at Class.java:-2
Caused by: java.lang.IllegalStateException at DockerClientProviderStrategy.java:277원래 전에는 build와 테스트가 잘 진행되었는데 무슨 일인지 Test에서 도커를 만들지 못하는 문제가 생겼나 봅니다.
저는 테스트에서 사용되는 DB Config들을 사용하는 곳에 주석 처리하고 도커 컴포즈로 DB를 주석 처리하고 테스트에서 사용되는 DB들은 Docker compose에 사용되는 DB를 켜서 사용했습니다. Docker Compose에서 사용되는 DB로 사용되기 싫으시다면 Docker 컨테이너로 따로 만드시면 될 것 같아요
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@SpringBootTest
//@Import({TestDatabaseConfig.class, TestRedisConfig.class})
public @interface IntegrationTest {
} docker compose up db redis -d
build 관련 에러들은 어노테이션 설정, gradle 설정, 컴파일 설정 등 많은 이유가 있어 하루 종일 붙잡아도 문제 해결이 안되는 점이 많아 시간으 며칠 잡아 먹었네요
글을 깔끔하게 가독성 좋게 작성하지 못해 아쉽지만 다른 사람들이 똑같은 문제를 맞았을 때 해당 글이 도움이 되길 바랍니다.
Answer 1
0
안녕하세요, 인프런 AI 인턴입니다.
김윤환님께서 겪고 계신 문제는 테스트 환경에서의 Docker 관련 이슈로 보입니다. 이를 해결하기 위해 몇 가지 제안을 드리겠습니다.
Docker Desktop으로 전환: 윈도우 환경에서 Docker를 실행할 때 WSL 대신 Docker Desktop을 사용해 보시기 바랍니다. WSL과의 통합 문제로 인해 발생할 수 있는 문제를 줄여줍니다.
Spring Boot Testcontainers 이용: Spring Boot에서는 테스트 시 Docker 컨테이너를 관리하기 위해 Testcontainers 라이브러리를 사용할 수 있습니다. 이는 실제 백엔드 서비스와 연결된 통합 테스트 시 유용합니다. 사용법은 다음 링크의 문서를 참고하시기 바랍니다: Testcontainers
Spring Boot Docker Compose: 테스트 환경에서 Docker Compose 지원을 활성화하여 사용할 수 있습니다.
spring-boot-docker-compose모듈을 프로젝트에 추가하고 테스트 시 사용할 수 있도록spring.docker.compose.skip.in-tests를false로 설정해보세요. 자세한 내용은 Docker Compose 문서를 참고하세요.Test Configuration 설정: 테스트에서 특정 데이터베이스 설정을 사용해야 한다면,
@TestConfiguration을 이용하여 필요한@Bean을 정의하고, 이러한 설정을 테스트에 적용해 보세요.에러 메시지 확인: 예외 메시지에서
DockerClientProviderStrategy관련 오류가 보입니다. Docker 클라이언트 설정이나 경로 등의 문제가 발생할 수 있습니다. 설정 확인 및 수정을 고려해 보세요.
문제가 지속될 경우, 트러블슈팅할 수 있도록 에러 로그를 더 자세히 분석해 공통적인 문제를 해결할 수 있는 방법을 고민해보는 것도 좋습니다. 도움이 되셨길 바랍니다!
인덱스 관련 질문 있습니다.
0
51
1
비관적 락 구현 방식 문의 건
0
58
2
외부 api 처리 방안에 대하여 궁금한 점이 있습니다.
0
87
2
네임드 락 사용 시 커넥션 풀을 분리하는 방법에 대한 질문
0
78
2
이벤트) 백엔드 기술면접 실전문제집
0
99
2
로컬에서 테스트 한 결과를 이력서에 써도 괜찮을까요?
0
127
2
데드락 발생 시, 외래 키를 제거하는 방법 관련 질문
0
82
2
Redis 캐싱을 도입하는데 db조회와 성능이 차이가 거의 없습니다.
0
107
2
k6 부하테스트 중인데 개선 전 성능이 너무 안나와서 고민
0
115
2
강의와 성능수치 비교
0
100
2
13강 강의 뒷부분의 과제 안내부분은 어디있나요?
0
48
2
이벤트 참가자 수 증가 후, save 메서드 호출 코드 질문
0
63
2
[수업 자료 질문] Cache Aside의 특징 문의
0
82
2
[수업자료 문의] RedisTemplate으로 SETNX 시 리턴값 문의
0
79
2
블로그에 학습 내용 정리 포스트를 올려도괜찮나요?
0
107
2
멀티스레드 상황인데 currentParticipants 가 AtomicInteger가 아닌 이유?
0
86
3
클라우드 환경 배포시 부하 테스트 방식에 대하여
0
133
2
k6 dashboad 안나오는 상
0
111
2
2-4 도커 빌드 에러가 계속 납니다.
0
295
2
AWS EC2에 도커 컨테이너가 동작하지 않을 때 확인 해야하는 것
0
112
2
성능 측정시
0
104
2
API 별 실행 쿼리 모니터링 구현 질문 있습니다.
0
79
2
이력서 작성에 대한 질문
0
105
2
트랜잭션 격리성 설계도 어필포인트로 가져갈 수 있을까요?
1
63
2

