$ ./gradlew build
Starting a Gradle Daemon, 2 incompatible and 2 stopped Daemons could not be reused, use --status for details
> Task :test
SpringbootAppApplicationTests > contextLoads() FAILED
java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:180
Caused by: org.springframework.beans.factory.BeanCreationException at AbstractAutowireCapableBeanFactory.java:1337
Caused by: org.springframework.beans.BeanInstantiationException at BeanUtils.java:221
Caused by: io.github.cdimascio.dotenv.DotenvException at ClasspathHelper.java:23
1 test completed, 1 failed
> Task :test FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':test'.
> There were failing tests. See the report at: file:///C:/Users/lh372/source/Law-AIer/springboot-app/build/reports/tests/test/index.html
* Try:
> Run with --scan to get full insights.
BUILD FAILED in 38s
7 actionable tasks: 6 executed, 1 up-to-date
제공된 오류 메시지를 보면, SpringbootAppApplicationTests 테스트 케이스에서 contextLoads()라는 테스트가 실패한 것 같습니다. 다음은 이 오류의 원인과 해결 방법에 대한 세부적인 설명입니다.
오류 분석 IllegalStateException: 이 예외는 보통 Spring의 애플리케이션 컨텍스트가 제대로 로드되지 않았을 때 발생합니다. BeanCreationException: 이 예외는 특정 Beans(빈)를 생성하는 중에 문제가 발생했음을 나타냅니다. DotenvException: 이 예외는 특히 io.github.cdimascio.dotenv 라이브러리와 관련 있습니다. 이 라이브러리는 .env 파일을 읽어 환경 변수를 설정하는 데 사용됩니다. 이 예외는 .env 파일이 없거나, Bean이 필요한 환경 변수가 올바르게 설정되지 않았음을 나타낼 수 있습니다.
C:\Users\lh372\source\Law-AIer\springboot-app\build\reports\tests\test 경로에서 테스트 요약을 통해 원인 분석해보기
오류 주요 내용 Caused by: io.github.cdimascio.dotenv.DotenvException: Could not find /.env on the classpath: .env 파일이 클래스 경로에서 찾을 수 없거나, Could not find .\.env on the file system: 현재 작업 디렉토리에서 .env 파일을 찾을 수 없다는 것을 나타냅니다.
.env
파일을 로드하는 경로가 제대로 지정되어 있는지 확인하고, 필요하면 절대 경로를 사용해보세요..env
파일 대신 application.properties
에서 환경 변수를 관리하고 @Value
로 받아오는 방법을 추천드립니다.Spring Boot 프로젝트를 vscode
에서 실행할 때 현재 작업 디렉토리와 .env
파일의 경로가 다를 수 있습니다. 즉, Spring Boot 프로젝트 내부에서 실행하는 경우 현재 디렉토리는 Spring Boot 프로젝트의 루트가 되지만 .env
파일은 맨 바깥 루트에 있기 때문에 인식하지 못합니다.