繁体   English   中英

在SpringJUnit4ClassRunner中使用spring @Conditional

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM