Java Spring@TestPropertySource类路径vs文件

Java Spring@TestPropertySource类路径vs文件,java,spring,Java,Spring,有没有像这样加载测试属性的方法 @TestPropertySource("${test.config:'classpath:application.test.properties'}") 关键是要检查test.config参数(可能有类似于file:c:/test.properties的内容),如果没有设置该值,那么它将从classpath获取默认属性 我能够使用参数从类路径加载属性 我无法合并类路径和文件 已解决: @PropertySource(value = {"classpath:ap

有没有像这样加载测试属性的方法

@TestPropertySource("${test.config:'classpath:application.test.properties'}")
关键是要检查test.config参数(可能有类似于file:c:/test.properties的内容),如果没有设置该值,那么它将从classpath获取默认属性

我能够使用参数从类路径加载属性

我无法合并类路径和文件

已解决:

@PropertySource(value = {"classpath:application.test.properties","${test.config}"}, ignoreResourceNotFound = true)
  • 如果未定义环境变量test.config,则上下文将 不可加载
  • 如果定义了环境变量test.config,但文件 test.properties不存在,则也将加载上下文
我认为您没有按照它的用例使用
TestPropertySource

TestPropertySource
用于在测试用例期间覆盖某些属性。若您想覆盖测试用例中的某些属性,只需将这些属性放在测试属性文件中。 Spring将只覆盖测试属性文件中的那些属性

不确定为什么要检查test.config环境变量,然后执行一些操作

  • 如果未定义环境变量test.config,则上下文将 不可加载
  • 如果定义了环境变量test.config,但文件 test.properties不存在,则也将加载上下文
我认为您没有按照它的用例使用
TestPropertySource

TestPropertySource
用于在测试用例期间覆盖某些属性。若您想覆盖测试用例中的某些属性,只需将这些属性放在测试属性文件中。 Spring将只覆盖测试属性文件中的那些属性


不确定为什么要检查test.config环境变量,然后执行一些操作

关键是要有默认的测试属性,这些属性可以根据不同的环境被覆盖。这是单元测试或实际代码所需要的?然后您需要根据环境在Maven中创建不同的概要文件,您可以使用Maven surefire插件来设置环境变量。在maven profile中,根据您的需要设置环境变量。使用@PropertySource(value={“classpath:application.test.properties”,“${test.config}”,IgnoreSourceNotFound=true)找到一个解决方案,关键是要有默认的测试属性,这是单元测试或实际代码所需要的?然后您需要根据环境在Maven中创建不同的配置文件,您可以使用Maven surefire插件设置环境变量。在maven profile中,根据需要设置环境变量。使用@PropertySource(值={“classpath:application.test.properties”,“${test.config}”,IgnoreSourceNotFound=true)找到解决方案