如何在springboot应用程序中从yaml文件读取属性值?
在项目中,我有一个YAML文件是这样的: 服务: 网址:http://10.10.100.09/service/ping如何在springboot应用程序中从yaml文件读取属性值?
目前我有设置我的测试是这样的:
@RunWith(SpringRunner.class)
@SpringBootTest(properties =
{"service.url=http://10.10.100.09/service/ping"},webEnvironment =
SpringBootTest.WebEnvironment.RANDOM_PORT)
public abstract class BaseIntegration {
@Value("${local.server.port}")
private int serverPort;
@Before
public void setup() {
RestAssured.port = serverPort;
}
}
我的测试被延长BaseIntegration类和测试代码驻留在那里。
问题:如何从配置文件直接读取url属性,而不是在测试中对其进行硬编码?
我曾尝试使用@SpringBootApplication注释,但在开始测试时发生错误。
可以尝试
@SpringBootTest(properties = {"${service.url}"},webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
或
@SpringBootTest(properties = {"service.url"},webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
我试过第一个选项,它不工作。服务网址没有从yaml文件中读取,我的测试失败了 – worrynerd
也许你创建了application-test.yml并在其上放置了变量 – gokhanbirincii
试过了。现在我得到了一个不同的test-application.yaml文件的错误,并且没有在类路径中找到。我正在使用gradle。我需要在那里做任何事吗? – worrynerd
你想读从默认的'/ src目录/主/资源/ application.yml'文件或财产的一些'/src/test/resources/application-test.yml'? – varren