小编Jua*_*bos的帖子

SpringBoot测试中如何获取正在运行的服务器端口?

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

\n\n

我尝试过

\n\n
@LocalServerPort\nprivate int port \n
Run Code Online (Sandbox Code Playgroud)\n\n

与

\n\n
@Autowired Environment environment;\nString port = environment.getProperty("local.server.port");\n
Run Code Online (Sandbox Code Playgroud)\n\n

但两者都返回 -1,我不知道\xc2\xb4t 是否有其他方法来获取端口

\n\n

我的测试配置了以下注释:

\n\n
@RunWith(SpringRunner)\n@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)\n@ActiveProfiles(\'test\')\n
Run Code Online (Sandbox Code Playgroud)\n\n

另外,有没有办法在文件中注入随机端口application-test.yml?理想情况下,我需要在我的application-test.yml文件中执行类似的操作:

\n\n
app:\n  service: localhost:${server.port}\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n

java spring spring-boot

6
推荐指数
1
解决办法
4952
查看次数

标签 统计

java ×1

spring ×1

spring-boot ×1