Error
연습중인 Spring boot에서 test code를 작성하지 않았음에도 gradle build시 아래와 같은 에러 메시지가 발생하였습니다.
llegalStateException: Failed to load ApplicationContext for...
....
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'dataSourceScriptDatabaseInitializer' defined in class path resource....
....
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource...
....
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate ...
...
Caused by: org.springframework.boot.autoconfigure.jdbc.DataSourceProperties...
...
문제와 해결
현재 프로젝트에서는 application-dev.yml
과 datasource-dev.yml
가 존재합니다.
애플리케이션은 application-dev.yml
을 읽을 필요가 있었는데 이를 읽지 못하는 문제로 사료됩니다.
저는 이 문제를 @SpringBootTest 어노테이션을 가지는 ApplicationTests 클래스에 @ActiveProfiles를 설정해줌으로써 해결했습니다. 해결코드는 아래와 같습니다.
package org.example.aop;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ActiveProfiles;
@SpringBootTest
@ActiveProfiles({"dev"})
class AopApplicationTests {
@Test
void contextLoads() {
}
}