运行、调试和测试 Scala
最后修改时间:2023 年 9 月 7 日IntelliJ IDEA 允许您运行、调试和测试 Scala 应用程序,就像您通常在 IntelliJ IDEA 中处理任何其他应用程序一样。IntelliJ IDEA 还允许您运行带有覆盖率的 Scala 代码并配置代码覆盖率设置。
笔记
要在执行运行或调试进程时调整配置设置,请使用“运行/调试配置”对话框。要访问该对话框,请选择“运行”|“ 从主菜单编辑配置。
运行 Scala 应用程序
您可以通过 IntelliJ IDEA 运行 Scala 代码、使用 sbt shell 或使用Scala 工作表进行快速代码评估。
通过 Intellij IDEA 运行 Scala 应用程序
- 创建或导入 Scala 项目,就像您通常在 IntelliJ IDEA 中创建或导入任何其他项目一样。 
- 在编辑器中打开您的应用程序。 
- 按执行应用程序。或者,在编辑器的装订线中,单击图标并选择Run 'name'。ShiftF10  
提示
您还可以单击
主工具栏上的图标来运行您的应用程序。
使用 sbt shell 运行 Scala 应用程序
您可以使用 sbt shell 来运行您的应用程序,该 shell 是任何sbt 项目的一部分。
- 打开你的 sbt 项目。 
- 如果要将构建和导入委托给 sbt,请在sbt工具窗口中单击 - 图标并选择sbt Settings。 - 在sbt设置页面上,在sbt shell下选择构建选项(需要 sbt 0.13.5+),然后单击“确定”保存更改。  - 当您创建或导入 sbt 项目时,此选项也可用。) - 如果您不想将构建和导入委托给 sbt,您仍然可以在 sbt shell 中工作(单击状态栏上的sbr shell )并直接从中运行 sbt 命令,包括运行您的应用程序。 
- 在sbt 项目工具窗口中,单击sbt 任务节点。 
- 在打开的列表中,选择将运行 main 方法的运行任务。  - 执行结果显示在sbt shell工具窗口中。  
提示
或者,您可以打开Scala REPL并使用它导入项目的任何类或模块并运行其方法。有关使用Scala REPL的更多信息,请参阅Scala 工作表、Scala REPL 和 Ammonite。
调试 Scala 代码
IntelliJ IDEA 允许您使用 IntelliJ IDEA 调试器或sbt shell调试代码。
使用 Intellij IDEA 调试 Scala 代码
您可以调整默认调试器设置,如果需要,可以关闭Scala 代码默认启用的智能单步执行功能。
访问调试器设置
- 在“设置”对话框 ( ) 中,转到“构建、执行、部署”| 调试器。CtrlAlt0S 
- 从右侧的选项中,您可以编辑常规调试器设置,或向下滚动到 Scala 部分并调整特定于 Scala 的调试器设置。  - 如果您需要禁用Scala 代码的智能单步执行,请选择“调试器”|“调试器”。单步执行并禁用Scala 部分中的始终执行智能单步执行选项。  
使用 sbt shell 调试 Scala 代码
- 打开你的 sbt 项目。 
- 在编辑器中打开您的应用程序。 
- 在编辑器的左侧装订线中,为要调试的代码行设置断点。  - 您无法调试实际.sbt文件中定义的代码,但可以调试可从build.sbt调用的 Scala 文件中的代码。 - 笔记- 如果您为或任务启用了分叉,则通过 sbt shell 调试任务将不起作用。 - run- test
- 在“设置”对话框 ( ) 中,选择“构建”、“执行”、“部署”| 构建工具| 顺便说一句。CtrlAlt0S 
- 在sbt页面上,选择“启用调试”并单击“确定”保存更改。 
- 在sbt shell工具窗口中,单击 - 图标连接到调试器服务器并启动调试会话。 - IntelliJ IDEA 还为调试会话创建运行/调试配置。  - 如果需要,您可以编辑运行/调试配置设置,但默认设置应该足以成功调试代码。 
- 在sbt shell 中输入 - run命令来运行程序。 - 在调试工具窗口中评估结果。  
测试 Scala 应用程序
IntelliJ IDEA 允许您使用ScalaTest和Specs2测试 Scala 应用程序。您还可以设置并运行测试范围。
笔记
要在 Scala 测试中调试代码,请参阅一般调试过程。
使用 Scala Test 测试 Scala 应用程序
- 打开您的项目。 - 如果您有 sbt 项目,请打开build.sbt文件并为 ScalaTest 指定以下依赖项: - libraryDependencies += "org.scalactic" %% "scalactic" % "3.0.1"- libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.1" % "test"- 单击sbt 项目 - 工具窗口中的 图标来刷新您的项目,或者使用“构建工具”设置中指定的“构建脚本更改后重新加载项目”选项,在每次对build.sbt进行更改时自动刷新您的项目。 
- 如果您有常规 Scala 项目,请使用“项目结构”对话框来配置测试库。 
 
- 在编辑器中打开一个类,您要为其创建测试,并将插入符号放在包含类声明的行中。 
- 按并选择创建新测试。CtrlShift0T 
- 在打开的对话框中,指定您的测试设置并单击“确定”。 
- 在编辑器中打开测试,按或右键单击测试类,然后从上下文菜单中选择Run 'test name'。CtrlShiftF10 
- IntelliJ IDEA 自动为测试创建运行/调试配置,但如果您想编辑配置中的设置,请单击“运行”|“调试”。从主菜单编辑配置。 
- 在右侧的“运行/调试配置”对话框中,指定测试套件的设置,然后单击“确定”。配置具有标准选项,您可以在运行测试部分找到更多详细信息。 - 但是,您还可以指定以下与 Scala 相关的选项: - 您可以选择“使用 sbt shell”复选框以通过 sbt shell 运行测试,并选择“使用 UI 与 sbt”以与平台测试运行程序相同的格式显示测试结果。 
- 您可以选择测试类型选项来指定要运行的测试类型。例如,您可以选择正则表达式并设置类和测试模式。 
 
- 在主工具栏上,单击 - 图标来运行测试。 
- 评估“运行”工具窗口中的结果。 
提示
您可以打开 sbt shell,运行测试并使用命令评估 sbt shell 的结果
test。
提示
或者,要创建测试套件,请右键单击该类,然后从上下文菜单中选择转到 | 测试。
提示
要在打开“运行/调试配置”对话框后为测试创建新的运行/调试配置,请单击
左上角的 ,然后从打开的列表中选择ScalaTest或Specs2以创建ScalaTest运行配置或Specs2运行配置分别。
提示
要编辑 Scala 测试文件的默认模板,请按,然后从左侧的选项中选择Editor|File and Code Templates。从右侧的选项中,选择“代码”选项卡并调整您的模板。CtrlAlt0S
使用 Specs2 测试 Scala 应用程序
使用Specs2测试 Scala 应用程序的过程与使用 ScalaTest 测试 Scala 应用程序部分中描述的过程相同,但以下选项除外:
- 您需要为您的 sbt 项目指定以下依赖项: - libraryDependencies ++= Seq("org.specs2" %% "specs2-core" % "3.9.5" % "test")- 对于常规 Scala 项目,请使用“项目结构”对话框来配置测试库。 
- 使用UI 与 sbt选项以与平台测试运行程序相同的格式显示测试结果不可用。 
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 允许您运行具有代码覆盖率的测试套件。
- 打开您的项目。 
- 在编辑器中打开要运行的测试。 
- 在装订线中,单击 - 图标并选择运行“名称”并覆盖选项。 - IntelliJ IDEA 运行测试并显示包含代码覆盖率信息的覆盖率工具窗口。 - 如果需要,您还可以调整默认代码覆盖率设置或代码覆盖率行为。 - 如果您已经运行测试套件,IntelliJ IDEA 会自动创建运行/调试配置。您可以打开创建的运行配置并调整设置。如果要为测试套件创建新的运行配置,请执行以下操作: - 转到“运行”| 编辑配置。 
- 在“运行/调试配置”对话框中,单击 - 左侧选项中的图标。 
- 从打开的列表中,选择您需要的配置。 
- 从右侧的选项中,单击代码覆盖率选项卡。 
- 调整默认设置并单击“确定”。有关更多信息,请参阅配置覆盖范围 
 - 您还可以调整代码覆盖率行为。 - 按打开设置页面。CtrlAlt0S 
- 从左侧的选项中,选择“构建、执行、部署”| 覆盖范围。 
- 从右侧的选项中,调整设置并单击“确定”。 
 
提示
或者,您可以选择运行 | 从主菜单中运行覆盖率,以覆盖率运行代码。
感谢您的反馈意见!