我尝试从我的junit测试用例调用Spring boot主应用程序,如下所示,并将profile设置为参数,如下所示。
MyApplication.main(new String[] {"-Dspring.profiles.active=local"});
我有一个@Value配置,可以从yml文件中读取。
yml
spring:
profiles: local
subdivisions: test
java
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class);
}
}
测试用例
@RunWith(SpringJUnit4ClassRunner.class)
public class MyApplicationTest {
@Test
public void testMainApplication() {
MyApplication.main(new String[] {"-Dspring.profiles.active=local"});
}
}
当我运行我的测试用例时,我得到了这个错误Could not resolve placeholder 'subdivisions' in value "${subdivisions}"
。
我猜没有设置活动配置文件,这是导致此错误的原因。
我尝试了下面的选项来传递Spring boot主应用程序的活动配置文件
MyApplication.main(new String[] {"spring.profiles.active=local"});
提前谢谢。感谢您在这方面的任何帮助..
发布于 2020-11-20 13:00:42
我遇到了同样的问题,并发现以下语法对我有效:
@Test
void main() {
MyApplication.main(new String[]{"--spring.profiles.active=dev"});
}
发布于 2020-06-03 00:04:46
您可以从启动日志中查看设置了哪个弹簧配置文件。另外,如果你有一个测试类,为什么不直接使用@ActiveProfiles("local"),也可以使用@SpringBootTest来启动spring引导测试,而不是直接调用main类
https://stackoverflow.com/questions/62162739
复制相似问题