0

在 2017 年 1 月 2 日安装 Eclipse 更新后,即使对于以前的工作测试,我也遇到了错误:

在“TestNG Result Listening Job”期间发生内部错误。端口值超出范围:-1

我用谷歌搜索了如何解决这个问题 - 将 JRE 更新到最新版本 1.8.0_112 并卸载了 TestNG-Maven 集成插件,但仍然出现错误。有人可以帮我解决问题吗?

安慰:

java.lang.IllegalArgumentException: port out of range:-1 at java.net.InetSocketAddress.checkPort(Unknown Source) at java.net.InetSocketAddress.(Unknown Source) at java.net.Socket.(Unknown Source) at org. testng.remote.strprotocol.BaseMessageSender.connect(BaseMessageSender.java:60) at org.testng.remote.strprotocol.MessageHub.connect(MessageHub.java:31) at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java: 105) 在 org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:236) 在 org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:81)

错误日志:

java.lang.IllegalArgumentException:端口值超出范围:-1 at java.net.ServerSocket.(Unknown Source) at java.net.ServerSocket.(Unknown Source) at org.testng.remote.strprotocol.BaseMessageSender.initReceiver(BaseMessageSender .java:127) 在 org.testng.eclipse.ui.TestRunnerViewPart$3.run(TestRunnerViewPart.java:444) 在 org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)

谢谢!

4

3 回答 3

1

我不确定为什么在您的本地无法获得免费端口:

public static int findFreePort() {
// Nick: either here throws IOException
    try (ServerSocket socket = new ServerSocket(0)) {
// Nick: or, here return -1
        return socket.getLocalPort();
    } catch (IOException e) { 
    }
    return -1;      
}

将 JRE 更新到最新版本 1.8.0_122

你的意思是JRE 1.8.0_112(而不是122)?你有任何杀毒软件会影响代码吗?

或者你能把上面的代码放到一个简单的一类java应用程序中,打印返回值findFreePort,如果你能在这个简单的应用程序中重现,你可以调试吗?

于 2017-01-05T14:09:24.667 回答
1

这听起来像是一个 Winsock 问题,而不是 testNG 本身的问题。您可以按照此知识库文章中的说明将 Winsock 安装重置为设置默认值。

简而言之,尝试以下步骤:

  1. 在命令提示符下运行netsh winsock reset
  2. 重新启动计算机
于 2017-12-25T04:57:21.647 回答
0

我恢复了我的 Windows 10 并且不再出现错误。看起来 Java、Eclipse 或我的代码没有问题

于 2017-01-06T23:16:47.433 回答