application내에서 test성공했는데, build시 test 실패 오류 발생.
Spring Boot 프로젝트에서 테스트 코드를 실행할 때 데이터베이스 연결 관련 오류가 발생했습니다. 테스트 환경과 실제 애플리케이션 환경에서 환경 변수 파일(.env
)을 참조하는 방식에 차이가 있어 발생한 문제였습니다.
Error creating bean with name 'dataSource': Failed to determine a suitable driver class
Spring Boot 애플리케이션을 실행할 때와 테스트를 실행할 때 작업 디렉토리가 다릅니다:
target/test-classes
또는 테스트 리소스 디렉토리에서 실행이로 인해 환경 변수 파일(.env
)을 찾는 경로가 달라져야 했습니다.
src/test/resources/application-test.properties
파일을 생성하고 테스트 환경 설정을 추가했습니다.
기존 설정 (application.properties):
spring.config.import=optional:file:.env[.properties]
수정된 설정 (application-test.properties):
spring.config.import=optional:file:../.env[.properties]
상위 디렉토리(../
)를 참조하도록 수정하여 테스트 실행 시에도 루트 디렉토리의 .env
파일을 찾을 수 있게 했습니다.
모든 테스트 클래스에 @ActiveProfiles("test")
어노테이션을 추가했습니다:
@SpringBootTest
@ActiveProfiles("test")
public class YourTestClass {
// 테스트 코드
}
위의 설정 변경 후, 테스트 코드가 성공적으로 DB에 연결되어 오류 없이 실행됐습니다.
@ActiveProfiles
어노테이션을 통해 테스트별로 다른 환경 설정을 적용할 수 있다는 것을 알게 됐습니다.spring.config.import
의 optional:
접두사를 사용하면 설정 파일이 없어도 애플리케이션 실행에 영향을 주지 않는다는 점을 배웠습니다..env
파일로 관리하는 프로젝트에 적용 가능합니다.