代码之家  ›  专栏  ›  技术社区  ›  arsenbonbon

JUnit测试以网络连接错误结束

  •  0
  • arsenbonbon  · 技术社区  · 16 年前

    我正在为我的Java项目运行Eclipse中的一些JUnit 4测试,我知道两天前的功能没有问题。

    不过,今天我发现了一些错误:

    Could not connect to:  : 40212          
    java.net.SocketException: Network is unreachable
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
        at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
        at java.net.Socket.connect(Socket.java:525)
        at java.net.Socket.connect(Socket.java:475)
        at java.net.Socket.<init>(Socket.java:372)
        at java.net.Socket.<init>(Socket.java:186)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.connect(RemoteTestRunner.java:570)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:381)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
    

    测试和代码都不影响网络。

    此外,用于安装新软件的Eclipse对话框无法连接到更新站点,SVN插件也无法连接到存储库。SVN存储库是可访问的,我已经用cli-svn程序检查过了。Eclipse中的代理被禁用。

    所以我的问题是,为什么JUnit一开始就想连接到互联网(离线工作怎么可能…),我能做些什么来找出问题的根源吗?(我的计划B是删除Eclipse并重新安装它)

    4 回复  |  直到 13 年前
        1
  •  3
  •   Brian Agnew    16 年前

    我怀疑 Junit 在同一台机器上作为单独的进程启动(请注意 RemoteTestRunner 然后Eclipse将通过一个套接字与它通信。

    因此,您的机器上是否存在与您的TCP堆栈相关的问题。你没有网络资源吗?有什么东西在霸占这些吗?

    netstat 可能在这里有用。或者简单的重启?

        2
  •  2
  •   JesperE    16 年前

    “为什么Eclipse要连接到Internet”问题的答案是Eclipse根本没有连接到Internet, 然而 Eclipse有一个特殊的JUnit测试侦听器,它与运行JUnit测试的JVM通信。此测试侦听器打开上的套接字 本地服务器 (我不完全确定服务器套接字在哪边,但这可能无关紧要)。

    我认为您的端部存在一些网络问题,从而阻止Eclipse进程在本地主机上打开套接字。在打开/关闭VPN以及从挂起/恢复周期返回后,我也遇到过类似的问题。

    我先尝试重启。如果这不起作用,我将尝试从其他工作区运行(运行…/eclipse.exe-d a t a path/to/new/workspace)。记住没有意义 卸载 日食。只需在某个地方打开一个新的Eclipse,然后尝试从那里运行。

        3
  •  0
  •   digiarnie    16 年前

    您是否尝试查看要执行的测试的“运行配置”?(即,右键单击测试并选择“运行方式”>运行配置),可能有些设置有些混乱。也许“测试”选项卡中的“测试运行程序”设置配置有误?

        4
  •  0
  •   Kibotu    13 年前

    在我的Windows7x64机器上,我使用了一个单独的防火墙来阻止javaw.exe,因为一些奇怪的原因,在取消阻止它之后,它又工作了。没有想到防火墙也会阻止机器内部套接字通信