강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

김윤환님의 프로필 이미지
김윤환

작성한 질문수

6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법

4-8. 락 실습 및 데드락 해결하기

Build 관련 문제 (테스트 관련 문제)

작성

·

16

0

다른 분들에게 도움이 될까 글을 작성합니다.

 

저는 윈도우 환경에서 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 설정, 컴파일 설정 등 많은 이유가 있어 하루 종일 붙잡아도 문제 해결이 안되는 점이 많아 시간으 며칠 잡아 먹었네요

 

글을 깔끔하게 가독성 좋게 작성하지 못해 아쉽지만 다른 사람들이 똑같은 문제를 맞았을 때 해당 글이 도움이 되길 바랍니다.

퀴즈

트랜잭션의 ACID 속성 중, 트랜잭션 내의 모든 작업이 성공적으로 완료되거나, 실패 시에는 모든 변경 사항이 취소되어 트랜잭션 시작 전의 상태로 되돌아가는 특성을 무엇이라고 할까요?

일관성 (Consistency)

지속성 (Durability)

원자성 (Atomicity)

격리성 (Isolation)

답변

답변을 기다리고 있는 질문이에요
첫번째 답변을 남겨보세요!
김윤환님의 프로필 이미지
김윤환

작성한 질문수

질문하기