gpt4 book ai didi

debugging - 从 IntelliJ 调试功能测试

转载 作者:行者123 更新时间:2023-12-02 16:00:57 26 4
gpt4 key购买 nike

我正在开发一个 Grails 应用程序,该应用程序具有一套 (Geb) 功能测试。我曾经能够从 IntelliJ 内部调试这些测试,但现在每当我尝试在 Debug模式下运行测试时,我都会收到以下错误

ERROR: transport error 202: connect failed: Connection refused
FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197)
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [debugInit.c:750]

最佳答案

自从引入 fork 模式以来,我一直在努力调试,直到我发现了这个简单的技巧。在您的 BuildConfig.groovy 中更改 grails.project.fork像这样:

grails.project.fork = [
test : [maxMemory: 1024, minMemory: 128, debug: false, maxPerm: 256, daemon:false, jvmArgs: ['-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005']],
run : [maxMemory: 1280, minMemory: 128, debug: false, maxPerm: 256, forkReserve: true, jvmArgs: ['-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005']],
war : false,
console: [maxMemory: 1024, minMemory: 128, debug: false, maxPerm: 256]
]

注意 jvmArgsruntest配置。当 fork 模式执行时,这很容易传递给 Java。

接下来,您必须配置远程调试 Hook 到上一步中定义的端口。

为了您的方便,您可以配置一个外部工具来等待调试启动,然后启动调试 session 。基本上它运行 nc在一个循环中,直到指定的端口处于事件状态。在最简单的形式中,它看起来像这样:
#!/usr/bin/env bash
while ! nc -z localhost 5005; do sleep 0.1; done;

您可以将此脚本配置为外部工具并使其在调试开始之前运行(在配置新的远程调试 session 时将其添加到“启动前”框中)

关于debugging - 从 IntelliJ 调试功能测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30895394/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com