【问题标题】:Scala Intellij breakpoints ignoredScala Intellij 断点被忽略
【发布时间】:2017-10-09 02:05:43
【问题描述】:

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

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

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

我需要安装一些东西或设置一些 Intellij 配置吗?

【问题讨论】:

  • 确保您正在调试。 IntelliJ Idea 具有用于运行和调试的单独按钮。调试是带有“错误”图标的那个
  • 你是如何运行你的应用程序的?你在用 sbt 吗?如果是这样,sbt 应该正在监听调试器连接。您可以使用 sbt -jvm-debug 5005 执行此操作。然后,您可以在 IntelliJ 中创建远程调试配置。调试设置应该足够了,但请确保检查端口是否也设置为 5005。
  • 你能上传一些你的动作截图吗?

标签: scala intellij-idea


【解决方案1】:

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

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-30
    • 1970-01-01
    • 2016-10-18
    相关资源
    最近更新 更多