error handling

(errorHandling) Spring boot, test코드에서의 contextLoad 문제 (llegalStateException Failed to load ApplicationContext for)

기록하는 습관. 2024. 4. 17. 04:18

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.ymldatasource-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() {
    }

}