如何在春季启动测试中覆盖application-test.yml?

时间:2019-03-26 23:21:20

标签: spring-boot spring-boot-test

我有src / main / test / resources / application-test.yml,根据SpringBootTest,它将加载application.yml,然后加载application-test.yml。但是我遇到一种情况,我只想对一个测试覆盖application-test.yml中的某些属性,而其他测试则需要使用application-test.yml中的属性。我该怎么做?

我尝试使用@TestPropertySource批注进行覆盖,但无法正常工作。

@Slf4j
@RunWith(SpringRunner.class)
@SpringBootTest(classes= MyApplicationTestApplication.class)
@ActiveProfiles("test")
@DirtiesContext
@TestPropertySource(locations = {"classpath:application-test.yml",
                                    "classpath:file-test.properties"})

2 个答案:

答案 0 :(得分:1)

再创建一个配置文件并同时激活它们(订单事项)@ActiveProfiles({"test", "test-override"})

或者您可以在Spring上下文开始加载自身之前,仅在静态块中使用System.properties进行覆盖。

答案 1 :(得分:0)

感谢您的评论和回答,只想添加对我有用的

@SpringBootTest(properties = "some.property=localhost:9094") 

Link to doc