ScalaTest + JUnit 5+gradle+idea
文章目录
ScalaTest + JUnit 5集成库使得在ScalaTest中使用JUnit 5变得有趣且容易。
功能
ScalaTest + JUnit 5提供以下功能:
- ScalaTest JUnit测试引擎实现,允许通过JUnit 5平台运行ScalaTest套件,支持通过标签包含或排除ScalaTest套件。
- 可以由ScalaTest运行器或JUnit 5平台运行的JUnitSuiteLike和JUnitSuite trait。
依赖
要使用ScalaTest + JUnit 5,请将以下内容添加到您的SBT项目依赖项:
libraryDependencies += "org.scalatestplus" %% "junit-5-10" % "3.2.17.0" % "test"
对于maven,您可以使用以下代码:
<dependency>
<groupId>org.scalatestplus</groupId>
<artifactId>junit-5-10_3</artifactId>
<version>3.2.17.0</version>
<scope>test</scope>
</dependency>
对于gradle,您可以使用以下代码:
dependencies {
implementation "org.scala-lang:scala-library:3.3.1"
testImplementation "org.scalatest:scalatest_2.13:3.2.17"
testImplementation "org.junit.platform:junit-platform-launcher:1.10.0"
testRuntimeOnly "org.junit.platform:junit-platform-engine:1.10.0"
testRuntimeOnly "org.scalatestplus:junit-5-10_2.13:3.2.17.0"
}
test {
useJUnitPlatform {
includeEngines 'scalatest'
testLogging {
events("passed", "skipped", "failed", "standard_error")
}
}
}
对于gradle(Kotlin),您可以使用以下代码:
dependencies {
implementation("org.scala-lang:scala-library:3.2.17")
testImplementation("org.scalatest:scalatest_2.13:3.2.17")
testRuntimeOnly("org.junit.platform:junit-platform-engine:1.10.0")
testRuntimeOnly("org.junit.platform:junit-platform-launcher:1.10.0")
testRuntimeOnly("org.scalatestplus:junit-5-10_2.13:3.2.17.0")
}
tasks {
test{
useJUnitPlatform {
includeEngines("scalatest")
testLogging {
events("passed", "skipped", "failed")
}
}
}
}
对于Gradle项目,默认情况下,IntelliJ IDEA使用Gradle的测试运行器来运行测试,在撰写本文时,该运行器无法与“跳转到源码”功能配合使用。您可以按照这里的说明切换到使用IntelliJ IDEA的测试运行器。
在Gradle项目中进行测试
在Gradle项目中,您可以像在其他项目中一样创建和运行测试。
IntelliJ IDEA还允许您更改测试过程的默认测试运行器,甚至为每个测试配置一个测试运行器。
配置测试运行器
在Gradle工具窗口中,点击"App expui general settings"打开Gradle设置页面。
在"Run test using"列表中,选择以下选项之一作为所选的Gradle项目的测试运行器:
- Gradle: IntelliJ IDEA将Gradle用作默认的测试运行器。因此,您可以在持续集成(CI)服务器上获得相同的测试结果。此外,在命令行中运行的测试将始终在IDE中正常工作。
- IntelliJ IDEA: 选择此选项将测试过程委托给IntelliJ IDEA。在这种情况下,IntelliJ IDEA使用JUnit测试运行器,由于增量编译,测试运行速度更快。
- Choose per test: 选择此选项可针对每个测试配置特定的测试运行器(Gradle或IntelliJ IDEA)。
Gradle设置: "Run test using"列表
点击"OK"。
运行Gradle测试
在Gradle项目中,在编辑器中创建或选择要运行的测试。
从上下文菜单中,选择"Run "。
或者,点击左侧装置窗口的运行图标。
如果选择了"Choose per test"选项,在编辑器中的每个测试下,IntelliJ IDEA会显示Gradle和JUnit测试运行器。
选择测试运行器
一旦您选择了测试运行器,IntelliJ IDEA会记住您的选择,并自动使用您选择的选项运行测试。如果您想再次使两个选项可用,请删除为该测试创建的运行配置。
如果您希望在运行测试时看到代码覆盖率,请选择"Run ‘name()’ with coverage"选项。它适用于IntelliJ IDEA和Gradle测试运行器。
IntelliJ IDEA使用配置的测试运行器运行测试,并在运行工具窗口的测试选项卡中显示输出。
运行工具窗口/使用Gradle运行测试
如果使用Gradle测试运行器运行测试,运行工具窗口将提供额外的Gradle选项。您可以生成Gradle测试报告(Open Gradle test report)和运行内部Gradle测试套件。
调试Gradle测试
在Gradle项目中,在编辑器中创建或选择要调试的测试。
从上下文菜单中,选择"Debug "。
如果在Gradle设置中选择了"Choose per test"选项,IntelliJ IDEA将清除运行/调试配置中位于"Debug Gradle scripts"位置的选项,并禁用Gradle脚本中的断点。
这样做是为了加快调试过程。您可以通过选择或取消选择"Debug Gradle scripts"选项来手动启用或禁用Gradle脚本中的断点。
有关调试的更多信息,请参阅Gradle调试部分。
运行内部Gradle测试套件
在多模块项目中,有时您可能希望查看Gradle内部测试套件的信息。例如,在并行运行测试时,您可以让IntelliJ IDEA显示有关测试过程的信息。IntelliJ IDEA还会显示同时工作的进程数量。
在运行工具窗口中,点击设置按钮,并选择"Show Internal Gradle Test Suites"。
重新运行测试以查看包括Gradle内部测试结果的测试结果。
参考链接
【ScalaTest系列1】由来场景用法示例详解
【ScalaTest教程2】使用ScalaTest进行测试步骤详解指南
【ScalaTest系列3】 使用断言示例使用词典
【ScalaTest系列4】Sharing fixtures共享测试夹具
【ScalaTest系列5】ScalaTest + JUnit 5+gradle+idea