用application.properties覆盖默认的Spring-Boot application.properties

时间:2019-02-12 14:13:47

标签: java spring spring-boot spring-boot-test

想用我的junit的application-test.properties完全替换我的application.properties。 TestPropertySource没有完成任务。似乎它仅替换了一些常用属性,但我不希望这样做。

要在我的Junit \集成测试中加载application-test.properties而不是application.properties

@RunWith(SpringRunner.class)
@ActiveProfiles( "test" )
@SpringBootTest(classes = Application.class)
@TestPropertySource(locations="classpath:application-test.properties")
@AutoConfigureMockMvc

2 个答案:

答案 0 :(得分:0)

该注释中有一个属性,可以抑制属性的继承:

@TestPropertySource(locations="classpath:application-test.properties", inheritProperties=false)

默认值为true,因此需要明确设置。

根据文档:

  

如果InheritProperties设置为false,则该对象的内联属性   测试类将隐藏并有效替换任何内联属性   由超类定义。

答案 1 :(得分:0)

我通常在我的测试文件夹(src / test / resources)中有一个resources文件夹,我在其中放置了一个修改过的application.properties,而spring-boot应该使用这个文件夹。参见https://www.baeldung.com/properties-with-spring 5.3