gpt4 book ai didi

java - 如何在 Spring Boot 测试中获取正在运行的服务器端口?

转载 作者:行者123 更新时间:2023-12-03 23:53:35 25 4
gpt4 key购买 nike

我正在为带有 Apache Camel 路由的 Spring Boot 应用程序创建一些单元测试,使用 Spock 作为测试框架,我需要模拟来自另一个应用程序的响应。我为此制作了一个模拟 Controller ,但我需要将运行测试的端口注入(inject)到一个属性中。有没有办法获取运行测试的端口?

我试过了

@LocalServerPort
private int port


@Autowired Environment environment;
String port = environment.getProperty("local.server.port");

但两者都返回-1,我不知道任何其他方法来获取端口

我的测试配置了以下注释:
@RunWith(SpringRunner)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@ActiveProfiles('test')

另外,有没有办法在 application-test.yml 中注入(inject)该随机端口?文件?理想情况下,我需要在我的 application-test.yml 中执行类似的操作文件:
app:
service: localhost:${server.port}

其中端口是运行测试的随机端口。

最佳答案

你能试试这个:

@SpringBootTest(classes = {Application.class}, webEnvironment = WebEnvironment.RANDOM_PORT)
public class test{

@LocalServerPort
private int rdmServerPort;

@LocalManagementPort
private int rdmManagementPort;
...
}

关于java - 如何在 Spring Boot 测试中获取正在运行的服务器端口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53524045/

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