您如何附加 Scala Intellij 调试器进行测试?

Jet*_*hro 5 debugging scala intellij-idea sbt playframework

需要哪些步骤来配置 IntelliJ 调试器以附加到由 sbt 管理的 Scala Play 测试?


在 IntelliJ 2019 中,您可以run使用 sbt shell 中的调试按钮将调试器附加到 sbt命令,而无需更改配置。
但是,调试器不会附加到test命令。

Mar*_*lic 6

考虑通过 IntelliJ 的sbt shell附加调试器:

  1. sbt 项目工具窗口中选择复选框Use sbt shell for builds
  2. 打开sbt shell工具窗口(通常位于底部)
  3. 单击Attach debugger to sbt shell按钮(图标看起来像一个错误)
  4. 状态栏中它应该说Connected to the target VM(见下图)
  5. 在测试中设置断点
  6. testsbt shell工具窗口中执行命令
  7. Debug sbt shell窗口应该打开并且执行应该在第一个断点处停止。

在此处输入图片说明


请注意,如果您像 OP 一样使用 Play,那么默认情况下 Play 在分叉的 JVM 中运行测试,因此对于上述技术,请尝试Test / fork := falsebuild.sbt.


Krz*_*sik 5

首先,您需要运行 SBT -jvm-debug [port]

sbt -jvm-debug 5005
Run Code Online (Sandbox Code Playgroud)

然后打开对话框Run/Debug Configuration并单击Remote。在新创建的配置上设置正确的主机和端口(通常localhost是 和5005),然后单击“应用”。

调试

然后,当您只需要运行此配置并设置断点时。之后只需test在 SBT 控制台中运行即可。

  • 已编辑 - 这有效,谢谢!注意 - 如果使用 Play Framework,您还必须将 `Test / fork := false` 添加到 `build.sbt`。 (4认同)