【问题标题】:IntelliJ 2019.2.2: Unable to debug gradle unit testsIntelliJ 2019.2.2:无法调试 gradle 单元测试
【发布时间】:2019-12-20 19:38:38
【问题描述】:

每次我尝试调试我的一项测试(junit 5)时,都会出现异常:

2019-12-20 10:40:53,776 [4972237]   WARN - .ExternalSystemTaskDebugRunner - Interrupted function call: accept failed
java.net.SocketException: Interrupted function call: accept failed
        at java.base/java.net.PlainSocketImpl.accept0(Native Method)
        at java.base/java.net.PlainSocketImpl.socketAccept(PlainSocketImpl.java:159)
        at java.base/java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:458)
        at java.base/java.net.ServerSocket.implAccept(ServerSocket.java:551)
        at java.base/java.net.ServerSocket.accept(ServerSocket.java:519)
        at com.intellij.openapi.externalSystem.service.execution.ForkedDebuggerThread.run(ForkedDebuggerThread.java:103)

我在这里做了很多搜索,发现有几个人有类似的问题。他们中的大多数只是通过升级来解决(到 2013 年或其他什么,这些问题并不完全是春鸡)。其余的需要一些与他们的系统相关的特殊调味料(主要是安卓的东西)。或者他们遇到了不同的异常(断开连接,我一开始就无法连接)。

这些测试(大部分是单元测试)附加到一个没有“main”的模块

我尝试启动gradlew -DtestDebug.test=true cleanTest test,然后连接远程调试会话。我收到一个错误:Unable to open debugger port (localhost:5005); java.net.ConnectException "Connection refused: connect",我相信这正是 IntelliJ 的 gui 在收到上述异常时所显示的内容。

理想情况下,我想设置断点,调试启动我的测试任务(也许指定一个类或个人@Test),然后它就可以工作了。

有没有人有我可以尝试的其他想法?我可以查看的日志?

【问题讨论】:

  • youtrack.jetbrains.com/issue/IDEA-228415 可能相关,如果存在 Android 模块,则调试测试存在已知问题。
  • IntelliJ 默认使用 Gradle 来运行/调试测试。您可以尝试更改为使用 IntelliJ 自己的测试运行器。它可以在项目的 Gradle 设置中更改。
  • @johanneslink :我遇到了同样的问题,我按照你说的做了,现在可以了!谢谢!这对其他人可能有用。您可能会考虑将您的建议作为答案,因为它至少对我有用。

标签: java gradle intellij-idea junit5


【解决方案1】:

解决方法是switch the build/run actions to IntelliJ IDEA,而不是使用 Gradle。

但如果您在当前 IDE 版本中仍然存在此问题,请consider reporting it 并附上sample project 和日志(帮助 | 压缩日志并显示在 ...)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-16
    • 1970-01-01
    相关资源
    最近更新 更多