在2017年1月1日安装eclipse更新后,即使对于以前正在进行的测试,我也遇到了错误:
在“TestNG Result Listening Job”期间发生内部错误。端口值超出范围:-1
我搜索了如何解决这个问题 - 将JRE更新到最新版本1.8.0_112并卸载了TestNG-Maven集成插件,但仍然出现错误。有人可以帮我解决问题吗?
安慰:
java.lang.IllegalArgumentException:端口超出范围:-1位于java.net.InetSocketAddress的java.net.InetSocketAddress.checkPort(未知源)。(未知源)位于org的java.net.Socket。(未知源)。位于org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.rava)的org.testng.remote.strprotocol.MessageHub.connect(MessageHub.java:31)中的testng.remote.strprotocol.BaseMessageSender.connect(BaseMessageSender.java:60): 105)org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:236)at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:81)
错误日志:
java.lang.IllegalArgumentException:端口值超出范围:-1位于java.net.ServerSocket。(未知源)位于java.net.ServerSocket。(未知来源)org.testng.remote.strprotocol.BaseMessageSender.initReceiver(BaseMessageSender) .java:127)在org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)的org.testng.eclipse.ui.TestRunnerViewPart $ 3.run(TestRunnerViewPart.java:444)
谢谢!
我不确定为什么在你当地没有获得免费端口:
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
的返回值,如果你可以在这个简单的应用程序中重现调试?
这听起来像一个Winsock问题,而不是testNG本身的问题。您可以按照此KB article中的说明重置Winsock安装以设置默认值。
简而言之,请尝试以下步骤
netsh winsock reset
我恢复了我的Windows 10,没有任何错误..看起来Java,Eclipse或我的代码没有问题