[英]spring @Conditional in SpringJUnit4ClassRunner
当SpringJUnit4ClassRunner执行测试时,我需要在生产环境中加载测试属性。
我在春季上下文中使用@Conditional定义测试/生产属性文件,例如:
@Configuration
public class ContextResource {
@Bean
@Conditional(TestApplicationConfiguration.class)
public static PropertySourcesPlaceholderConfigurer testProperties() {
PropertySourcesPlaceholderConfigurer placeholderConfigurer = new PropertySourcesPlaceholderConfigurer();
Resource [] resources = new Resource[] {
new ClassPathResource("properties/constants/constants-test.properties")
};
placeholderConfigurer.setLocations(resources);
return placeholderConfigurer;
}
@Bean
@Conditional(ProductionApplicationConfiguration.class)
public static PropertySourcesPlaceholderConfigurer productionProperties() {
PropertySourcesPlaceholderConfigurer placeholderConfigurer = new PropertySourcesPlaceholderConfigurer();
Resource [] resources = new Resource[] {
new ClassPathResource("properties/constants/constants.properties")
};
placeholderConfigurer.setLocations(resources);
return placeholderConfigurer;
}
我也在用测试
@RunWith(SpringJUnit4ClassRunner.class)
returned false, is loading and it's normal, but how can I tell my tests to load test properties even if returned ? 当返回false时, 正在加载,这是正常现象,但是即使返回我如何告诉我的测试加载测试属性?
先感谢您!
您可以在属性文件上使用具有相同名称的不同资源(src \\ main \\ java \\ resources和src \\ test \\ java \\ resources)用于生产和测试模式。 默认情况下,测试会尝试使用src \\ test \\ java \\ resources中的属性,但是如果找不到,则将使用src \\ main \\ java \\ resources中的属性。
在13种语言中,您可以在模块设置中标记testResources。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.