运行、调试和测试 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
从左侧的选项中,选择“构建、执行、部署”| 覆盖范围。
从右侧的选项中,调整设置并单击“确定”。
提示
或者,您可以选择运行 | 从主菜单中运行覆盖率,以覆盖率运行代码。
感谢您的反馈意见!