본문 바로가기
백엔드/Programming

[Spring boot]EC2 test build 오류

by 수박통통 2022. 2. 2.

실은 초반부터 계속 오류가 발생했던 부분인데...

test 부분만 빼면 빌드도 잘되고 잘 돌아갔던터라..

외면했던 오류였다.

 

검색해도 잘 나오지 않았고(내가 검색을 잘못했을수도..)

결국 커뮤니티에도 물어보고

내가 들어가있는 spring 오픈카톡방에도 

물어봤었다.

 

기본적으로 나는 

application.properties 를 깃허브에 올리지 않고 따로 ec2서버에 올려놓고

배포스크립트에서 properties를 연결하고 사용했기때문에, 

test를 build 할 때, properties파일을 인식하지 못해 일어나는 문제인 것 같다.

까지는 알았지만..

 

그래서 어떻게 해야하냐구!!

했었다. 

 

우선

해당 오류는

QueryRepositoryTest > findByContent() FAILED

    java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:132

        Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException at ConstructorResolver.java:800

            Caused by: org.springframework.beans.factory.BeanCreationException at ConstructorResolver.java:658

                Caused by: org.springframework.beans.BeanInstantiationException at SimpleInstantiationStrategy.java:185

                    Caused by: org.springframework.boot.autoconfigure.jdbc.DataSourceProperties$DataSourceBeanCreationException at DataSourceProperties.java:253

 

와 같은 오류들이 모든 test코드에 다...

 

 

이런 식의 오류였다!

 

오픈 카톡방에서는

 

'테스트용으로 application-test.yml 파일을 새로 만들고 테스트 코드에 @ActiveProfiles(“test”) 어노테이션추가'

를 말씀하셔서 적용해봤지만 그대로였다.

 

그래서 여러 검색과 내 추론 끝에

ec2내

test/resources/application.properties 

를 만들고 DB정보를 넣어주었다. 

 

그랬더니 빌드가 성공했다.

 

이 밖에도 

ec2내에 따로 properties 작성하고 배포스크립트에 작성하는 식으로 해보려고 했지만,

모두 실패했다..!

(검색해보니, 다른 분들은 이런식으로 많이 성공하셨던 것 같다)

 

이 방법이 맞는 방법인지는 모르겠지만,

우선 임시방편이라도 되었으면 하는 바람이다!

 

더 좋은 방법이 있다면 댓글 남겨 주시면 감사하겠습니다!:-)