如何附加 Scala Intellij 调试器进行测试?
How do you attach the Scala Intellij debugger for tests?
配置 IntelliJ 调试器以附加到由 sbt 管理的 scala Play 测试需要哪些步骤?
在 IntelliJ 2019 中,您可以使用 sbt shell 中的调试按钮将调试器附加到 sbt run
命令,无需更改配置。
但是,调试器不附加到 test
命令。
首先,您需要 运行 您的 SBT -jvm-debug [port]
例如:
sbt -jvm-debug 5005
然后打开对话框 Run/Debug Configuration
并单击 Remote
。
在新创建的配置上设置正确的主机和端口(通常为 localhost
和 5005
)并单击应用。
那时候你只需要运行这个配置和设置断点。之后只是 运行 test
在 SBT 控制台内。
考虑通过 IntelliJ 的 sbt shell:
附加调试器
- 在 sbt 项目 工具中 window select 复选框
Use sbt shell for builds
- 打开sbt shell工具window(通常在底部找到)
- 单击
Attach debugger to sbt shell
按钮(该图标看起来像一个错误)
- 在状态栏中应该显示
Connected to the target VM
(见下图)
- 在测试中设置断点
- 在sbt shell工具中执行
test
命令window
- 调试 sbt shell window 应该打开并且执行应该在第一个断点处停止。
请注意,如果您像 OP 一样使用 Play,则默认情况下 Play 在 forked JVM 中运行测试,因此要使上述技术起作用,请尝试在 build.sbt
中设置 Test / fork := false
。
配置 IntelliJ 调试器以附加到由 sbt 管理的 scala Play 测试需要哪些步骤?
在 IntelliJ 2019 中,您可以使用 sbt shell 中的调试按钮将调试器附加到 sbt run
命令,无需更改配置。
但是,调试器不附加到 test
命令。
首先,您需要 运行 您的 SBT -jvm-debug [port]
例如:
sbt -jvm-debug 5005
然后打开对话框 Run/Debug Configuration
并单击 Remote
。
在新创建的配置上设置正确的主机和端口(通常为 localhost
和 5005
)并单击应用。
那时候你只需要运行这个配置和设置断点。之后只是 运行 test
在 SBT 控制台内。
考虑通过 IntelliJ 的 sbt shell:
附加调试器- 在 sbt 项目 工具中 window select 复选框
Use sbt shell for builds
- 打开sbt shell工具window(通常在底部找到)
- 单击
Attach debugger to sbt shell
按钮(该图标看起来像一个错误) - 在状态栏中应该显示
Connected to the target VM
(见下图) - 在测试中设置断点
- 在sbt shell工具中执行
test
命令window - 调试 sbt shell window 应该打开并且执行应该在第一个断点处停止。
请注意,如果您像 OP 一样使用 Play,则默认情况下 Play 在 forked JVM 中运行测试,因此要使上述技术起作用,请尝试在 build.sbt
中设置 Test / fork := false
。