当前位置: 代码迷 >> java >> 用application.properties覆盖默认的Spring-Boot application.properties
  详细解决方案

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

热度:78   发布时间:2023-07-26 14:23:36.0

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

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

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

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

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

默认值为true因此您需要显式设置。

根据文档:

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

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

  相关解决方案