【ScalaTest系列5】ScalaTest + JUnit 5+gradle+idea

本文介绍了如何在Gradle项目中整合ScalaTest和JUnit5进行测试,包括添加依赖、配置测试运行器(GradlevsIntelliJIDEA)、运行测试、调试以及查看内部Gradle测试套件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 settings: the Run test using list

Gradle设置: "Run test using"列表

点击"OK"。

运行Gradle测试

在Gradle项目中,在编辑器中创建或选择要运行的测试。

从上下文菜单中,选择"Run "。

或者,点击左侧装置窗口的运行图标。Run Test

如果选择了"Choose per test"选项,在编辑器中的每个测试下,IntelliJ IDEA会显示Gradle和JUnit测试运行器。Choose per test

选择测试运行器
一旦您选择了测试运行器,IntelliJ IDEA会记住您的选择,并自动使用您选择的选项运行测试。如果您想再次使两个选项可用,请删除为该测试创建的运行配置。

如果您希望在运行测试时看到代码覆盖率,请选择"Run ‘name()’ with coverage"选项。它适用于IntelliJ IDEA和Gradle测试运行器。The test coverage report

IntelliJ IDEA使用配置的测试运行器运行测试,并在运行工具窗口的测试选项卡中显示输出。

运行工具窗口/使用Gradle运行测试
如果使用Gradle测试运行器运行测试,运行工具窗口将提供额外的Gradle选项。您可以生成Gradle测试报告(Open Gradle test report)和运行内部Gradle测试套件。

调试Gradle测试

在Gradle项目中,在编辑器中创建或选择要调试的测试。

从上下文菜单中,选择"Debug "。Debug test

如果在Gradle设置中选择了"Choose per test"选项,IntelliJ IDEA将清除运行/调试配置中位于"Debug Gradle scripts"位置的选项,并禁用Gradle脚本中的断点。Enable Gradle script debugging

这样做是为了加快调试过程。您可以通过选择或取消选择"Debug Gradle scripts"选项来手动启用或禁用Gradle脚本中的断点。

有关调试的更多信息,请参阅Gradle调试部分。

运行内部Gradle测试套件

在多模块项目中,有时您可能希望查看Gradle内部测试套件的信息。例如,在并行运行测试时,您可以让IntelliJ IDEA显示有关测试过程的信息。IntelliJ IDEA还会显示同时工作的进程数量。

在运行工具窗口中,点击设置按钮,并选择"Show Internal Gradle Test Suites"。Run tool window

重新运行测试以查看包括Gradle内部测试结果的测试结果。

参考链接

plusjunit5

【ScalaTest系列1】由来场景用法示例详解

【ScalaTest教程2】使用ScalaTest进行测试步骤详解指南

【ScalaTest系列3】 使用断言示例使用词典

【ScalaTest系列4】Sharing fixtures共享测试夹具

【ScalaTest系列5】ScalaTest + JUnit 5+gradle+idea

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BigDataMLApplication

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值