IntelliJ IDEA 2025.2 Help

运行、调试和测试 Scala 项目

IntelliJ IDEA 可让您运行、调试和测试 Scala 应用程序,就像通常在 IntelliJ IDEA 中运行其他应用程序一样。 IntelliJ IDEA 还允许您运行 Scala 代码并配置代码覆盖率设置。

运行 Scala 应用程序

您可以通过 IntelliJ IDEA 运行您的 Scala 代码,使用 sbt shell,或使用 Scala worksheet 进行快速代码评估。

有关在 IntelliJ IDEA 中运行程序的一般概述,请参阅 运行应用程序

通过 Intellij IDEA 运行 Scala 应用程序

  1. 如同在 IntelliJ IDEA 中创建或导入其他项目一样, 创建或导入一个 Scala 项目。

  2. 在编辑器中打开您的应用程序。

  3. 按下 Shift+F10 以执行应用程序。 或者,您也可以在编辑器边栏中点击 运行 图标并选择 运行 'name'

    运行主程序

使用 sbt shell 运行 Scala 应用程序

您可以使用 sbt shell 运行您的应用程序,这是任何 sbt project 的一部分。

  1. 打开您的 sbt 项目。

  2. 如果您想要将构建和导入委托给 sbt,在 SBT 工具窗口中,点击 图标,然后选择 sbt 设置

    SBT 设置页面中,选择 sbt shell 下的 build 选项(需要 sbt 0.13.5+)并点击 OK 保存更改。

    sbt 设置

    此选项也可在您创建或导入 sbt 项目时使用。

    如果您不想将构建与导入委托给 sbt,您仍然可以在 sbt shell 中工作(点击状态栏上的 sbt shell ),并且可以直接从中 运行 sbt 命令 ,包括运行您的应用程序。

  3. sbt 项目 工具窗口中,点击 sbt 任务 节点。

  4. 在打开的列表中,选择将运行 main 方法的 运行 任务。

    sbt 工具窗口:运行任务

    执行结果显示在 sbt shell 工具窗口中。

    sbt shell 输出

重新加载更改与热交换

有时,您需要在不中断进程的情况下插入微小的代码更改。 由于 Java 虚拟机具有 HotSwap 功能,IntelliJ IDEA 在您调用 Make 时会自动处理这些情况。

运行 Scala 代码的替代方法

若要快速评估代码,您可以使用 Scala 工作表,该工作表使您能够交互运行代码。 按 Ctrl+Alt+Shift+X 创建 Scala 工作表的简化版本,并按 Ctrl+Alt+W 运行它。

或者,您可以打开 Scala REPL 并使用它导入项目的任何类或模块并运行其方法。 更多信息请参阅 Scala 工作表、Scala REPL 和 Ammonite

如果您需要,您还可以将 Scala 应用程序部署到服务器。 欲了解更多信息,请参阅 使用应用服务器

调试 Scala 代码

IntelliJ IDEA 允许您使用 IntelliJ IDEA 调试器或 sbt shell 调试您的代码。

要概览 IntelliJ IDEA 的调试,请参阅 调试

使用 Intellij IDEA 调试 Scala 代码

  1. 在编辑器中打开您的 Scala 应用程序。

  2. 在边栏中,设置您想要调试的代码行的断点。 有关断点的更多信息,请参阅 断点

  3. 如果需要,您可以访问 运行/调试配置 对话框(运行(U) | 编辑配置(E) )并调整设置,但通常默认设置足以成功运行您的调试会话。

  4. 按下 Shift+F9

    或者,在项目小部件上,点击 图标以开始调试。

  5. 调试 工具窗口中评估结果。

    有关在 调试 工具窗口中使用选项的更多信息,请参阅 调试代码 部分。

您可以调整默认的调试器设置,如果需要,可以关闭默认为 Scala 代码启用的 智能步入功能。

访问调试器设置

  1. Ctrl+Alt+S 打开设置,然后选择 构建、执行、部署 | 调试器

  2. 您可以从右侧的选项编辑一般调试器设置,或向下滚动到 Scala 区域并调整 Scala 特定的调试器设置。

    调试器设置:Scala

    如果您需要为 Scala 代码禁用 智能步入 ,请选择 调试器 | 单步调试 并禁用 Scala 部分中的 始终进行智能步入(L) 选项。

    单步设置

使用 sbt shell 调试 Scala 代码

  1. 打开您的 sbt 项目。

  2. 在编辑器中打开您的应用程序。

  3. 在编辑器侧边栏中,设置 您 要调试的代码行的断点。

    设置断点

    您不能调试实际 .sBT 文件中的代码,但您可以调试可以从 build.sbt 调用的 Scala 文件中的代码。

  4. 设置 对话框(Ctrl+Alt+S )中,选择 构建、执行、部署 | 构建工具 | sbt

  5. SBT 页面,选择 启用调试 并点击 OK 以保存更改。

  6. sbt shell 工具窗口中,点击 图标以连接到调试器服务器并开始调试会话。

    IntelliJ IDEA 还会为调试会话创建运行/调试配置。

    运行/调试配置

    您可以编辑 run/debug 配置设置,但默认设置应该足以成功调试您的代码。

  7. SBT shell 中输入 运行 命令以运行该程序。

    sbt shell:运行

    调试 工具窗口中评估您的结果。

    Debug(调试)工具窗口

运行和调试的快捷键

运行/调试的常规操作有:

操作

快捷键

运行

Shift+F10

调试

Shift+F9

在调试模式下,您可以使用 评估任何表达式由工具 对表达式求值 Alt+F8。 此工具以与编辑器相同的方式提供代码补全,因此输入任何表达式都很容易。

有时,您可能希望进入特定的方法,但不希望进入将首先被调用的方法。 在这种情况下,按 智能步入Shift+F7 选择特定的方法。

操作

快捷键

切换断点

Ctrl+F8

步入

F7

智能步入

Shift+F7

步过

F8

逐步跳出

Shift+F8

恢复

F9

对表达式求值

Alt+F8

测试 Scala 应用程序

IntelliJ IDEA 让您使用 ScalaTestSpecs2mUnit 测试您的 Scala 应用程序。 您还可以设置并运行测试范围。

有关如何调试 Scala 测试中的代码的信息,请参阅 调试代码

运行测试

使用 Scala Test 测试 Scala 应用程序

  1. 打开您的项目并配置依赖项:

    • 如果您有一个 sbt 项目,请打开 build.sbt 文件,并为 ScalaTest 指定以下依赖:

      libraryDependencies += "org.scalactic" %% "scalactic" % "3.2.17"
      libraryDependencies += "org.scalatest" %% "scalatest" % "3.2.17" % "test"

      点击 图标,在 sbt 项目 工具窗口中刷新您的项目,或使用 在构建脚本更改后同步项目 选项在 构建工具 设置中指定每次更改 build.sbt 时自动刷新您的项目。

    • 如果您有一个常规的 Scala 项目,请使用 项目结构 对话框来配置测试库。

  2. 打开要为其创建测试的类,并将文本光标放置在包含类声明的行内。

  3. Ctrl+Shift+T 并选择 创建新测试

    或者,若要创建一个测试套件,请右键点击类,然后从上下文菜单中选择 转到 | 测试

  4. 在打开的对话框中,指定您的测试设置,然后点击 OK

  5. 在编辑器中打开测试,按下 Ctrl+Shift+F10 或右键点击测试类,然后从上下文菜单中选择 运行 'test name'

    IntelliJ IDEA 会自动创建一个运行/调试配置来进行测试,但如果您想编辑配置中的设置,请从主菜单中点击 运行 | 编辑配置

  6. 运行/调试配置 对话框中,右侧指定测试套件的设置,并点击 OK。 该配置具有标准选项,详细信息请参见 运行测试 部分。

    您还可以指定以下与 Scala 相关的选项:

    • 您可以选中 使用 sbt shell 复选框通过 sbt shell 运行您的测试,选中 使用 sbt 的 UI 以与平台测试运行器相同的格式显示测试结果。

    • 您可以选择 测试种类 选项来指定您想要运行的测试类型。 例如,您可以选择 正则表达式 并设置类和测试模式。

  7. 在主工具栏上,点击 图标运行测试。

  8. 运行 工具窗口中评估结果。

使用 Specs2 测试 Scala 应用程序

使用 Specs2 测试 Scala 应用程序的过程与 使用 ScalaTest 测试 Scala 应用程序 部分所述的过程相同,除了以下选项:

  • 请为您的 sbt 项目指定以下依赖项:

    libraryDependencies ++= Seq("org.specs2" %% "specs2-core" % "3.9.5" % "test")

    对于常规的 Scala 项目,请使用 项目结构 对话框配置测试库。

  • 显示测试结果格式与平台测试运行器相同的 使用 sbt 的 UI 选项不可用。

Scala 中的测试作用域

IntelliJ IDEA 允许您使用 ScalaTestSpecs2 测试范围。

您可以在范围内运行测试或测试整个 Scala 项目的范围。

  1. 创建您的测试范围。 例如:

    import org.scalatest.GivenWhenThen import org.scalatest.featurespec.AnyFeatureSpec class StackFeatureSpec extends AnyFeatureSpec with GivenWhenThen { Feature("Feature 1") { Scenario("Scenario A") { } Scenario("Scenario B") { } } Feature("Feature 2") { Scenario("Scenario C") { } } Feature("empty") { } }
  2. 在编辑器中,取决于您的测试范围,您可以执行以下操作:

    • 如果您打开某个范围内的测试的上下文菜单,您可以为该范围内指定的测试创建运行配置。

      运行/调试配置:范围内测试
    • 如果您为整个范围打开上下文菜单,您可以为范围内的所有测试创建运行配置。

      运行/调试配置:范围
  3. 运行 工具窗口中运行您的测试并查看输出。

    运行工具窗口:测试通过

    您还可以使用 sbt shell 运行范围测试。

使用覆盖率测试 Scala 应用程序

IntelliJ IDEA 允许您使用代码覆盖率运行您的测试套件。

启用 Code Coverage for Java 插件

此功能依赖于 Java 代码覆盖率插件,该插件在 IntelliJ IDEA 中默认捆绑并启用。 如果相关功能不可用,请确保您没有禁用插件。

  1. Ctrl+Alt+S 打开设置,然后选择 插件

  2. 打开 已安装 选项卡,找到 针对 Java 的代码覆盖率 插件,并选中插件名称旁边的复选框。

运行 Scala 测试并生成覆盖率报告

  1. 请确保已安装并启用了 Java 代码覆盖率插件。

  2. 打开您的项目。

  3. 在编辑器中打开您要运行的测试。

  4. 在装订区域,点击 并选择 运行“name”并生成覆盖率报告 选项。

    或者,在主菜单中转到 运行 | 带覆盖运行 来使用覆盖率运行代码。

    IntelliJ IDEA 运行测试,并显示 覆盖 工具窗口与代码覆盖率信息。

    显示代码覆盖率

在运行配置中配置覆盖率

如有需要,您可以调整默认代码覆盖率设置或代码覆盖率行为。

如果您已经运行了测试套件,IntelliJ IDEA 会自动创建一个运行/调试配置。 您可以打开已创建的运行配置并调整其设置。 如果您想为测试套件创建一个新的运行配置,请执行以下操作:

  1. 在主菜单中,前往 运行 | 编辑配置

  2. 运行/调试配置 对话框中,点击左侧选项中的 图标。

  3. 从打开的列表中选择所需的配置。

  4. 打开 代码覆盖率 选项卡。 调整默认设置并点击 OK。 如需更多信息,请参阅 运行配置设置

配置代码覆盖率

配置覆盖设置

您还可以调整代码覆盖率行为。

  1. Ctrl+Alt+S 打开设置,然后选择 构建、执行、部署 | 覆盖率

  2. 调整默认设置并点击 OK。 更多信息请参阅 项目设置

最后修改日期: 2025年 9月 22日