当前位置: 首页 > 知识库问答 >
问题:

使用多个属性文件启动JUnit和@TestPropertySource

淳于玺
2023-03-14

Spring Boot 2.0.3.发布

@TestPropertySource("file:C:\\Users\\user\\eclipse-workspace\\one2one_httpCall\\src\\main\\resources\\application-DEV.properties")

然而,我需要两个属性文件,我确实看到了位置选项,但没有看到一个以上的文件的例子…尝试了不同的选择,但都不起作用:

@TestPropertySource(locations = "classpath:application-DEV.properties;classpath:application.properties")

我尝试了几种方法,甚至尝试了两次使用@TestPropertySource,但错误地说你不能使用它两次。

尝试使用@PropertySource,因为你可以使用它两次,但没有工作,因为这是一个Junit测试。看了一堆关于stacktrace+其他人的问题,尝试了,但没有运气。

所以我的问题是如何通过@TestPropertySource注释使用两个属性文件?

共有1个答案

禹智渊
2023-03-14

如果查看@TestPropertySource的定义内部,您将看到Locations的类型为String[]。因此,如果需要向其传递多个值,则必须使用数组:

@TestPropertySource(locations = { "classpath:application.properties", "classpath:application-DEV.properties" })

另外,请注意声明属性文件的顺序。正如TestPropertySource文档中所述:

每个位置都将按照声明的顺序作为自己的属性源添加到封闭环境中。

因此,您可能希望在之后声明开发人员属性,以避免它们被生产属性重写。

 类似资料:
  • 问题内容: 我将sql存储在属性文件中,并使用spring注入它,这有效: 但出于可读性,我想要这样: 我需要使用什么正确的文本格式? 问题答案: 在行的末尾使用\ 另外,请注意任何尾随空格,因为Java在组装线时会寻找连续的反斜杠+换行符。 换种说法:反斜线必须是换行符之前该行的最后一个字符。

  • 我用Spring靴。我想使用YAML而不是属性来编写配置。 问题是应用程序继续使用application.properties文件,如果我删除它,就不会加载任何配置。 有人能帮帮我吗?这是我的主要档案 这是我的

  • 我浏览了以下链接:如何通过application.properties和其他相关链接传递一个map 多次,但仍然不起作用。 代码:

  • 寻找在Springboot应用程序中配置多个配置文件特定属性文件的最佳方法。下面是一个例子: -资源  · --application.properties  · · · · · --德夫             --application-dev.properties             --ldap-dev.properties             --Quartz-Dev.Prope

  • 是否可以从服务器加载Spring Boot配置。json文件,而不是。亚马尔。房产?从文档来看,这是不支持开箱即用的——我想知道这是否可能,如果可能的话,人们将如何着手呢?