Scala Intellij断点被忽略了

oct*_*ian 10 scala intellij-idea

我正在从Coursera学习Scala入门课程.

在Intellij中,我正在尝试调试但是忽略了断点.

与此问题不同:无法在IntelliJ + sbt-idea-plugin中调试Scala应用程序,我没有收到任何错误.

我是否需要安装或设置一些Intellij配置?

Joh*_*ohn 1

最近有人引导我使用 scala/scalatest 在 InteliJ 中进行调试。我正在运行 InteliJ Idea 2017.2,安装了最新的 scala 语言插件,没有安装 SBT 插件(据我所知,这只是 scala 插件的一部分)。希望这可以帮助其他人:

  1. 通过单击要测试的行号旁边的来设置断点。
  2. 假设您使用 ScalaTest 设置一些条件并运行您的程序,您可以右键单击您的测试类之一,然后Debug '[classname]'从下拉列表中进行选择。这应该会弹出底部的调试窗格。 在此输入图像描述

当您使用 InteliJ 直接运行调试(不通过 sbt 等附加)时,我实际上能够让它工作。我还没有成功回答任何讨论附加到正在运行的 sbt 进程(至少使用 scalatest)的相关问题的答案。

此时,intelij debug 和 scalatest 为您提供了很多有用的东西。假设有一项测试失败了,您想要深入了解原因。在调试窗口中,单击控制台选项卡,您将看到按套件排序的测试列表,失败的测试旁边带有红色标记。您可以右键单击单个测试并从下拉列表中选择“调试”以仅调试该一个测试。这非常有用。 在此输入图像描述

希望这对其他人有帮助!我还遇到了一些我应该概述的陷阱:

  1. 有时我需要重新加载 sbt 项目(单击左侧 sbt 项目选项卡下的圆形箭头)。这需要一段时间,但它会清除一些关于未找到类的随机错误,甚至是听起来不相关的东西,例如One or more requested classes are not Suites. 在此输入图像描述
  2. 我有时会收到有关未找到着色类的错误,特别是通过 sbt 使用 docker 时(例如在我的测试中启动数据库节点)。为了解决这个问题,我首先删除了缓存的编译 jar(rm -r $HOME/.ivy2/cache/com.spotify/例如,为了摆脱导致问题的缓存编译代码),然后按照步骤 1 重新加载项目。
  3. 如果一切都失败,请确保项目已正确导入。您可能需要删除.idea文件夹中的文件夹并重新导入 sbt 项目。这会破坏你的设置和所有内容,但过去它对我来说是最后的手段。