我有一个Spring-Boot应用程序,其中默认属性application.properties
在类路径(src / main / resources / application.properties)中的文件中设置。
我想用test.properties
文件中声明的属性(src / test / resources / test.properties)覆盖我的JUnit测试中的一些默认设置。
我通常为Junit测试提供专用的Config类,例如
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参考文档-23 .外部化配置)。
然后我尝试-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
使用test.properties
我必须忽略的JUnit测试中的设置,必须有一个简单的解决方案。