1. 문제
스프링부트 컨테이너를 불러와 테스트해야하는 경우 @SpringBootTest 어노테이션을 사용하여 테스트를 진행하게 되는데...
찾아보니 가끔 Import가 안되는 이슈가 발생하는거같다.
(gradle clean 후 다시 빌드하여도 해결 되지 않았다.)
IDE 문제인지 실행하면 또 되는 경우도 있지만 안되는 경우도 있기 때문에 기록으로 남겨본다.
2. 환경
- OS : MacOS(Sonoma, M1 MacSilicon)
- Framework : Spring Boot 3.1.4
- Language : Java 17
- Type : Gradle
- IDE : IntelliJ
2. 해결
해결 방법은 매우 심플한 편이다.
build.gradle 파일을 보면 SpringBoot Test에 사용될 라이브러리에 대한 Dependency가 적혀있다.
테스트 실행 시 주입되도록 testImplementation 으로 되어있는데,
이 부분을 implementation으로 수정해주고 gradle build 해주면 된다.
빌드하면서 test 라이브러리를 가져오기 때문에 IDE에서 @SpringBootTest 어노테이션을 인식하게된다.
이미 test 라이브러리를 빌드해서 가져왔기 때문에 다시 testImplementation 으로 바꿔줘도 정상적으로 작동한다.
(Gradle은 이미 가져온 부분은 제외하고 빌드하기 때문이다.)
Maven으로 사용할때도 test 라이브러리 정의 부분에 [<scope> test </scope>] 부분을 제거해주면 되기 때문에 방법은 유사하다.
3. 마무리
크게 문제는 없는 문제였지만 간혹 다른 라이브러리를 주입 받을 때 문제가 생겨나는듯 하다.
(Lombok도 비슷한 이슈가 간혹 발생했던걸로 기억한다.)
실행에 크게 문제는 없는듯 하지만 로컬 테스트를 하거나 작업할때 불편하기 때문에 혹시나 하는 마음에 남겨본다.
단순히 주입 받는 시점이 다르기 때문에 일시적으로 적용이 안되는 이슈가 발생하는거지만
build.gradle 작성할때 testImpletation, complieOnly 등 이런 작동원리나 요소를 조금이라도 알고 있으면 금방 해결이 되는듯하다.
'DEV > ErorrBox' 카테고리의 다른 글
[Error] SSH, Host key verification failed. (같은 IP 접속 정보가 변경되는 경우) (0) | 2025.03.07 |
---|---|
[Error] Git E325 Error (0) | 2024.03.23 |
[Error] Spring Security 6.1.x .requestMatchers() cannot decide whether these patterns (1) | 2023.08.02 |
[Error] org.openqa.selenium.ElementNotInteractableException: element not interactable (1) | 2023.05.28 |
[Error] @EqualsAndHashCode(callSuper=false) (0) | 2023.05.07 |