在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)
谢谢!
答案 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的说明。
简单地尝试以下步骤:
netsh winsock reset
答案 2 :(得分:0)
我恢复了我的Windows 10,没有任何错误..看起来Java,Eclipse或我的代码没有问题