Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在spring引导测试中获取服务器端口_Java_Spring Boot_Junit - Fatal编程技术网

Java 如何在spring引导测试中获取服务器端口

Java 如何在spring引导测试中获取服务器端口,java,spring-boot,junit,Java,Spring Boot,Junit,我有Spring Boot 1.5.3应用程序。application.properties文件中有一行server.port=8081。 现在我想测试ping方法: private final Environment environment; @Autowired public ServerCommunicateServiceImpl(Environment environment) { this.environment = environment; } @Override pub

我有Spring Boot 1.5.3应用程序。application.properties文件中有一行
server.port=8081
。 现在我想测试ping方法:

private final Environment environment;

@Autowired
public ServerCommunicateServiceImpl(Environment environment) {
    this.environment = environment;
}

@Override
public boolean pingHost(String host) {
    int port = environment.getProperty("server.port", Integer.class, DEFAULT_PORT);
    return pingHost(host, port, DEFAULT_TIMEOUT);
}
测试:

但它不工作,因为端口是
-1
。环境有4个属性源,其中第一个包含属性
server.port=-1
。我需要
application.properties
文件中的端口


它适用于生产环境,但不适用于测试。

检查此链接:您可能需要将Environoment设置为DEVsomewhere@tharanga-dinesh配置文件是dev。它不起作用。另外,
local.server.port
默认为空
@springbootest
在模拟环境中运行,因此没有分配端口。如果您想使用实际端口运行,请将
@SpringBootTest
webEnvironment
更改为其他内容。@M.Deinum,非常感谢。现在可以了。
@RunWith(SpringRunner.class)
@SpringBootTest
public class ServerCommunicateServiceImplTest {

    @Autowired
    private ServerCommunicateService serverCommunicateService;

    @Test
    public void pingHost() {
        boolean result = serverCommunicateService.pingHost("localhost");
        assertThat(result, is(true));
    }
}