gpt4 book ai didi

Spring Boot JUnit 和 @TestPropertySource 使用多个属性文件

转载 作者:行者123 更新时间:2023-12-04 14:22:34 27 4
gpt4 key购买 nike

Spring Boot 2.0.3.RELEASE

有多个属性文件要处理.. application.properties 和 application-DEV.properties

在 Junit 测试中使用注解 @TestPropertySource 我只能让它读取一个文件:

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

按预期工作

但是我需要两个属性文件我确实看到了locations选项但没有看到一个以上文件的例子..尝试了不同的选项但没有一个工作:
@TestPropertySource(locations = "classpath:application-DEV.properties;classpath:application.properties")

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

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

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

最佳答案

如果你看一下 @TestPropertySource 的定义,你会看到 locations类型为 String [] .因此,如果您需要向它传递多个值,则必须使用数组来传递:

@TestPropertySource(locations = { "classpath:application.properties", "classpath:application-DEV.properties" })
另外,请注意声明属性文件的顺序。如 TestPropertySource docs 中所述:

Each location will be added to the enclosing Environment as its own property source, in the order declared.


所以你可能想声明你的 DEV 属性 以避免它们被您的生产属性覆盖。

关于Spring Boot JUnit 和 @TestPropertySource 使用多个属性文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52824425/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com