运行、调试和测试 Scala 项目
IntelliJ IDEA 可让您运行、调试和测试 Scala 应用程序,就像通常在 IntelliJ IDEA 中运行其他应用程序一样。 IntelliJ IDEA 还允许您运行 Scala 代码并配置代码覆盖率设置。
运行 Scala 应用程序
您可以通过 IntelliJ IDEA 运行您的 Scala 代码,使用 sbt shell,或使用 Scala worksheet 进行快速代码评估。
有关在 IntelliJ IDEA 中运行程序的一般概述,请参阅 运行应用程序。
通过 Intellij IDEA 运行 Scala 应用程序
如同在 IntelliJ IDEA 中创建或导入其他项目一样, 创建或导入一个 Scala 项目。
在编辑器中打开您的应用程序。
按下 Shift+F10 以执行应用程序。 或者,您也可以在编辑器边栏中点击
图标并选择 运行 'name'。

使用 sbt shell 运行 Scala 应用程序
您可以使用 sbt shell 运行您的应用程序,这是任何 sbt project 的一部分。
打开您的 sbt 项目。
如果您想要将构建和导入委托给 sbt,在 SBT 工具窗口中,点击
图标,然后选择 sbt 设置。
在 SBT 设置页面中,选择 sbt shell 下的 构建: 选项(需要 sbt 0.13.5+)并点击 OK 保存更改。

此选项也可在您创建或导入 sbt 项目时使用。
如果您不想将构建与导入委托给 sbt,您仍然可以在 sbt shell 中工作(点击状态栏上的 sbt shell ),并且可以直接从中 运行 sbt 命令 ,包括运行您的应用程序。
在 sbt 项目 工具窗口中,点击 sbt 任务 节点。
在打开的列表中,选择将运行 main 方法的 运行 任务。

执行结果显示在 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 代码
您可以调整默认的调试器设置,如果需要,可以关闭默认为 Scala 代码启用的 智能步入功能。
访问调试器设置
按 Ctrl+Alt+S 打开设置,然后选择 。
您可以从右侧的选项编辑一般调试器设置,或向下滚动到 Scala 区域并调整 Scala 特定的调试器设置。

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

使用 sbt shell 调试 Scala 代码
打开您的 sbt 项目。
在编辑器中打开您的应用程序。
在编辑器侧边栏中,设置 您 要调试的代码行的断点。

您不能调试实际 .sBT 文件中的代码,但您可以调试可以从 build.sbt 调用的 Scala 文件中的代码。
在 设置 对话框(Ctrl+Alt+S )中,选择 。
在 SBT 页面,选择 启用调试 并点击 OK 以保存更改。
在 sbt shell 工具窗口中,点击
图标以连接到调试器服务器并开始调试会话。
IntelliJ IDEA 还会为调试会话创建运行/调试配置。

您可以编辑 run/debug 配置设置,但默认设置应该足以成功调试您的代码。
在 SBT shell 中输入
运行命令以运行该程序。
在 调试 工具窗口中评估您的结果。

运行和调试的快捷键
运行/调试的常规操作有:
操作 | 快捷键 |
|---|---|
运行 | Shift+F10 |
调试 | Shift+F9 |
在调试模式下,您可以使用 评估任何表达式由工具 对表达式求值 Alt+F8。 此工具以与编辑器相同的方式提供代码补全,因此输入任何表达式都很容易。
有时,您可能希望进入特定的方法,但不希望进入将首先被调用的方法。 在这种情况下,按 智能步入 和 Shift+F7 选择特定的方法。
操作 | 快捷键 |
|---|---|
切换断点 | Ctrl+F8 |
步入 | F7 |
智能步入 | Shift+F7 |
步过 | F8 |
逐步跳出 | Shift+F8 |
恢复 | F9 |
对表达式求值 | Alt+F8 |
测试 Scala 应用程序
IntelliJ IDEA 让您使用 ScalaTest、 Specs2 和 mUnit 测试您的 Scala 应用程序。 您还可以设置并运行测试范围。
有关如何调试 Scala 测试中的代码的信息,请参阅 调试代码。

使用 Scala Test 测试 Scala 应用程序
打开您的项目并配置依赖项:
如果您有一个 sbt 项目,请打开 build.sbt 文件,并为 ScalaTest 指定以下依赖:
libraryDependencies += "org.scalactic" %% "scalactic" % "3.2.17"libraryDependencies += "org.scalatest" %% "scalatest" % "3.2.17" % "test"点击
图标,在 sbt 项目 工具窗口中刷新您的项目,或使用 在构建脚本更改后同步项目 选项在 构建工具 设置中指定每次更改 build.sbt 时自动刷新您的项目。
如果您有一个常规的 Scala 项目,请使用 项目结构 对话框来配置测试库。
打开要为其创建测试的类,并将文本光标放置在包含类声明的行内。
按 Ctrl+Shift+T 并选择 创建新测试。
或者,若要创建一个测试套件,请右键点击类,然后从上下文菜单中选择 。
在打开的对话框中,指定您的测试设置,然后点击 OK。
在编辑器中打开测试,按下 Ctrl+Shift+F10 或右键点击测试类,然后从上下文菜单中选择 运行 'test name'。
IntelliJ IDEA 会自动创建一个运行/调试配置来进行测试,但如果您想编辑配置中的设置,请从主菜单中点击 。
在 运行/调试配置 对话框中,右侧指定测试套件的设置,并点击 OK。 该配置具有标准选项,详细信息请参见 运行测试 部分。
您还可以指定以下与 Scala 相关的选项:
您可以选中 使用 sbt shell 复选框通过 sbt shell 运行您的测试,选中 使用 sbt 的 UI 以与平台测试运行器相同的格式显示测试结果。
您可以选择 测试种类 选项来指定您想要运行的测试类型。 例如,您可以选择 正则表达式 并设置类和测试模式。
在主工具栏上,点击
图标运行测试。
在 运行 工具窗口中评估结果。
使用 Specs2 测试 Scala 应用程序
使用 Specs2 测试 Scala 应用程序的过程与 使用 ScalaTest 测试 Scala 应用程序 部分所述的过程相同,除了以下选项:
请为您的 sbt 项目指定以下依赖项:
libraryDependencies ++= Seq("org.specs2" %% "specs2-core" % "3.9.5" % "test")对于常规的 Scala 项目,请使用 项目结构 对话框配置测试库。
显示测试结果格式与平台测试运行器相同的 使用 sbt 的 UI 选项不可用。
Scala 中的测试作用域
IntelliJ IDEA 允许您使用 ScalaTest 或 Specs2 测试范围。
您可以在范围内运行测试或测试整个 Scala 项目的范围。
创建您的测试范围。 例如:
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") { } }在编辑器中,取决于您的测试范围,您可以执行以下操作:
如果您打开某个范围内的测试的上下文菜单,您可以为该范围内指定的测试创建运行配置。

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

在 运行 工具窗口中运行您的测试并查看输出。

您还可以使用 sbt shell 运行范围测试。
运行 Scala 测试并生成覆盖率报告
IntelliJ IDEA 允许您使用代码覆盖率运行您的测试套件。
如果您尚未完成此操作,您需要先安装 'Code Coverage for Java' 插件。 转到 并在 Marketplace 中搜索它。
打开您的项目。
在编辑器中打开您要运行的测试。
在装订区域,点击
并选择 运行“name”并生成覆盖率报告 选项。
或者,您可以前往主菜单中的 ,运行您的代码并进行覆盖率分析。
IntelliJ IDEA 运行测试,并显示 覆盖 工具窗口与代码覆盖率信息。 您可以通过点击编辑器右侧的图标打开 覆盖 工具窗口。


在运行配置中配置覆盖率
您还可以根据需要调整默认的代码覆盖率设置或代码覆盖率行为。
如果您已经运行了测试套件,IntelliJ IDEA 会自动创建运行/调试配置。 您可以打开已创建的运行配置并调整设置。 如果您想为测试套件创建一个新的运行配置,请执行以下操作:
在主菜单中,前往 。
在 运行/调试配置 对话框中,点击左侧选项中的
图标。
从打开的列表中选择所需的配置。
在右侧的选项中,点击 代码覆盖率 选项卡。
调整默认设置并点击 OK。 如需更多信息,请参阅 程式码覆盖率

配置覆盖设置
您还可以调整代码覆盖率行为。
按 Ctrl+Alt+S 打开设置,然后选择 。
请从右侧的选项中调整设置,然后点击 OK。