[英]Set Spring Unit Test Profile From -D Variables
我有这样的测试
RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { AppConfig.class, DevConfig.class, ProdConfig.class})
@ActiveProfiles({"prod", "dev"})
public class MyTest {
........
}
AppConfig是我的应用程序的主要配置
仅在我的单元测试中创建了两个配置类,DEV配置类从我的src / test / resource /中加载test_dev.properties。
@Configuration
@Profile("dev")
@PropertySource("classpath:test_dev.properties")
public class DevConfig {
}
ProdConfig类加载prod.properties
@Configuration
@Profile("prod")
@PropertySource("classpath:test_prod.properties")
public class ProdConfig {
}
我想通过更改@ActiveProfiles中的值在prod和dev之间轻松切换
但是我希望能够像这样切换测试环境
mvn -Dspring.profiles.active=dev or prod install
我努力了
@ActiveProfiles({"prod", "dev"})
then
mvn -Dspring.profiles.active=dev or prod install
似乎产品总是被捡起
我看过像
@Test
public void transferTenDollars() throws InsufficientFundsException {
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext();
ctx.getEnvironment().setActiveProfiles("dev");
ctx.register(TransferServiceConfig.class, StandaloneDataConfig.class, JndiDataConfig.class);
ctx.refresh();
// proceed with assertions as above ...
}
但这将失去使用@ContextConfiguration批注的全部意义。
我认为开关是
-Dspring.profiles.active=dev
甚至作为环境变量
SPRING_PROFILES_ACTIVE=dev mvn install
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.