Scala Intellij断点被忽略了

时间:2015-11-29 21:21:46

标签: scala intellij-idea

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

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

与此问题不同:Can't debug a Scala application in IntelliJ + sbt-idea-plugin,我没有收到任何错误。

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

1 个答案:

答案 0 :(得分:0)

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

  1. 点击要测试的行号旁边的设置断点。
  2. 假设您使用ScalaTest设置某些条件并运行程序,您可以右键单击其中一个测试类,然后从下拉列表中选择Debug '[classname]'。这应该弹出底部的调试窗格。 enter image description here
  3. 当您使用InteliJ直接运行调试(而不是通过sbt等附加)时,我实际上能够让它工作。我没有成功解决相关问题的任何答案,这些问题讨论了附加到正在运行的sbt进程(至少有scalatest)。

    有很多有用的东西,intelij debug在这一点上为你提供了scalatest。假设有一个测试失败,你想深入了解原因。在调试窗口中,单击控制台选项卡,您将看到按套件排序的测试列表,其中包含失败的测试旁边的红色标记。您可以右键单击单个测试,然后从下拉列表中选择debug,仅调试该测试。它非常有用。 enter image description here

    希望这有助于其他人!我还打了几个问题,我应该勾勒出来:

    1. 有时我需要重新加载sbt项目(单击左侧sbt项目选项卡下的圆形箭头)。它需要一段时间,但它可以清除一些关于未找到的类的随机错误,甚至是One or more requested classes are not Suites之类的不相关的声音。 enter image description here
    2. 我有时会发现有关未找到阴影类的错误,尤其是在通过sbt使用docker时(例如在我的测试中启动db节点)。为了解决这个问题,我首先删除了缓存的已编译jar(例如rm -r $HOME/.ivy2/cache/com.spotify/以删除导致问题的缓存编译代码),然后按照步骤1重新加载项目。
    3. 如果所有其他方法都失败,请确保已正确导入项目。您可能需要删除文件夹中的.idea文件夹并重新导入sbt项目。这会破坏您的设置和所有设置,但它作为过去的最后手段对我有用。