You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在webEnvironment=DEFINED_PORT时固定Spring Boot测试端口?

解决Spring Boot集成测试固定端口问题

你设置了DEFINED_PORT但仍出现随机端口,核心原因是**DEFINED_PORT会使用应用配置中指定的端口,若未配置则会 fallback 到随机逻辑**。以下是具体解决方案:

1. 在测试配置中指定固定端口

在src/test/resources目录下创建或修改测试专用配置文件(比如application-test.properties),添加固定端口配置:

server.port=63547

如果你的测试没有使用特定Profile,直接修改src/test/resources/application.properties即可。

2. 正确注入配置的端口(避免硬编码)

不要手动给randomServerPort赋值,改用@Value注入配置中的端口,确保代码和配置一致:

@Value("${server.port}")
private int serverPort;

@Test
public void autoSpecUpdate() throws IOException {
    String url = "http://localhost:" + serverPort + "/" + version + "/api-docs";
    // 后续测试逻辑
}

3. 排查潜在的端口覆盖因素

  • 检查测试类中是否存在@DynamicPropertySource注解,这类配置可能动态修改了端口值
  • 确认没有其他配置类或测试扩展逻辑覆盖了server.port的配置

内容的提问来源于stack exchange,提问作者Dhanyaa Bharadwaj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 02:37:09