如何使用 Gradle 和 JUnit 5 仅运行特定测试?

Posted

技术标签:

【中文标题】如何使用 Gradle 和 JUnit 5 仅运行特定测试?【英文标题】:How to run only specific tests with Gradle and JUnit 5? 【发布时间】:2018-07-20 08:41:15 【问题描述】:

使用 Gradle 及其对 JUnit 4 的支持,我可以使用 --tests 选项选择特定测试,如下所示:

$ ./gradlew test --tests de.mp.BarMT

此选项在使用 JUnit 5 Gradle 任务时无效。从命令行使用 test 任务时,它会被静默忽略。反正真正的工作是junitPlatformTest做的,不支持选项:

$ ./gradlew clean junitPlatformTest --tests de.mp.BarMT
…
Problem configuring task :junitPlatformTest from command line.
> Unknown command-line option '--tests'.

JUnit 5 插件是否支持选择特定测试?

【问题讨论】:

相关... ***.com/questions/45508263/…? 确实如此。我会说几乎是重复的(我保证我有真正的测试)。奇怪的是,它在创建问题时没有出现在搜索中。 原生 Gradle 支持即将到来。目前的计划是将其包含在 Gradle 4.6 中(参见github.com/gradle/gradle/pull/4116) 【参考方案1】:

回答自己... 很多时间过去了,新版本来了,我可以用 Gradle 5.4.1 和 JUnit Jupiter Platform 1.4.2 确认,简单的配置:

test 
    useJUnitPlatform()

将允许运行 https://***.com/a/31468902/2621917 中所见的单个测试,即使使用奇怪的名称(来自 Kotlin):

gradle test --tests 'htmlForwardInterceptorTest.should forward requests'

【讨论】:

以上是关于如何使用 Gradle 和 JUnit 5 仅运行特定测试?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 JUnit 5 与 Gradle 一起使用?

运行 Gradle JUnit 测试时出现“地址已在使用:绑定”异常

Gradle 没有找到我使用 Kotlin 和 JUnit 5 进行的测试

如何使用 Gradle 运行 JUnit 测试?

如何在多模块项目中使用 JUnit5 和 SpringBoot2 通过 gradle 而不是 intelliJ 运行测试

如何将 Gradle 中的原生 JUnit 5 支持与 Kotlin DSL 结合使用?