在春季启动中,我有以下配置文件:应用程序电子邮件.yaml
services:
email:
cron: '....'
recipient: `...`
other properties...
在test/resources目录中,我有application.yaml,我想包括电子邮件配置文件中的所有属性,但对于测试,我想覆盖recipient
属性。
所以我希望我的应用程序.yaml看起来像这样:
spring:
profiles:
include: email
services:
email:
recipient: `test-email`
据我所知,spring首先在test/resources中读取application.yaml,然后用概要文件中的值覆盖它。但我想要的恰恰相反。
我怎样才能做到这一点?
附加1:我想我可以创建配置文件测试,在那里定义我的测试接收者。但是我可以在没有额外配置文件的情况下完成吗?
最好的方法实际上是创建一个application-test.yaml,并激活概要文件测试。
你为什么不想这样做?这是春天推荐的方式。
要获得所有的测试属性和电子邮件属性,我需要添加以下注释:
@ActiveProfiles("test")
@PropertySource("classpath:application-email.yaml")
public class MyWonderfulTests { ...}
假设您只想覆盖一个属性,请将以下静态块添加到测试类的顶部:
static {
System.setProperty("recipient", "test-email");
}
这应该会奏效:(