기본 속성이 application.properties
클래스 경로 (src / main / resources / application.properties) 의 파일에 설정된 Spring-Boot 응용 프로그램이 있습니다.
test.properties
파일에 선언 된 속성 (src / test / resources / test.properties)으로 JUnit 테스트의 일부 기본 설정을 재정의하고 싶습니다.
일반적으로 Junit 테스트를위한 전용 구성 클래스가 있습니다.
package foo.bar.test;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
@Configuration
@Import(CoreConfig.class)
@EnableAutoConfiguration
public class TestConfig {
}
먼저 @PropertySource("classpath:test.properties")
TestConfig 클래스에서 사용 하면 트릭을 수행 할 것이라고 생각했지만 이러한 속성은 application.properties 설정을 덮어 쓰지 않습니다 (Spring-Boot Reference Doc- 23. Externalized Configuration 참조 ).
그런 다음 -Dspring.config.location=classpath:test.properties
테스트를 호출 할 때 사용하려고했습니다 . 성공했지만 각 테스트 실행에 대해이 시스템 속성을 설정하고 싶지 않습니다. 따라서 코드에 넣었습니다.
@Configuration
@Import(CoreConfig.class)
@EnableAutoConfiguration
public class TestConfig {
static {
System.setProperty("spring.config.location", "classpath:test.properties");
}
}
불행히도 다시는 성공하지 못했습니다.
내가 간과해야했던 application.properties
JUnit 테스트의 설정 을 무시하는 방법에 대한 간단한 해결책이 있어야합니다 test.properties
.