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

时间:2017-01-03 04:12:44

标签: java eclipse testng testng-eclipse

在2017年1月1日安装eclipse更新后,即使以前正在进行的测试也出现错误:

  

在“TestNG结果侦听作业”期间发生内部错误。港口   值超出范围:-1

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

控制台:

  

java.lang.IllegalArgumentException:port超出范围:-1 at   java.net.InetSocketAddress.checkPort(未知来源)at   java.net.InetSocketAddress。(未知来源)at   java.net.Socket。(未知来源)at   org.testng.remote.strprotocol.BaseMessageSender.connect(BaseMessageSender.java:60)     在   org.testng.remote.strprotocol.MessageHub.connect(MessageHub.java:31)     在   org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:105)     at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:236)     在org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:81)

错误日志:

  

java.lang.IllegalArgumentException:端口值超出范围:-1 at   java.net.ServerSocket。(未知来源)at   java.net.ServerSocket。(未知来源)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)

谢谢!

3 个答案:

答案 0 :(得分: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的返回值,如果可以在这个简单的应用程序中重现那么调试吗?

答案 1 :(得分:1)

这听起来像是一个Winsock问题,而不是testNG本身的问题。您 可以按照以下步骤重置您的Winsock安装以设置默认值 来自此KB article的说明。

简单地尝试以下步骤:

  1. 在命令提示符下运行netsh winsock reset
  2. 重新启动计算机

答案 2 :(得分:0)

我恢复了我的Windows 10,没有任何错误..看起来Java,Eclipse或我的代码没有问题