如何在没有@RunWith 注释的情况下运行 JUnit 5 套件

Ber*_*eri 5 junit4 junit-runner junit5

对于我使用以下模板的套房:

@RunWith(JUnitPlatform.class)
@SelectPackages("com.services.configuration")
@ExcludeTags({IntegrationTags.JPA, IntegrationTags.REST})
public class UnitTestSuite {
}
Run Code Online (Sandbox Code Playgroud)

@RunWith 是 JUnit 4 依赖项,它来自

 compile "org.junit.platform:junit-platform-runner:1.0.2"
Run Code Online (Sandbox Code Playgroud)

是否可以在没有 JUnit 4 依赖项的情况下拥有 JUnit 5 套件?这样我就可以从我的依赖项中删除 JUnit 4?

不能用适当的@ExtendsWith扩展名替换吗?我只需要套房。

Mar*_*ipp 4

运行JUnitPlatform器是使用 JUnit 4 执行为 JUnit 平台测试引擎编写的测试(例如 JUnit Jupiter 测试)的一种方法。它只是不支持新 JUnit 平台的工具的临时解决方案。

JUnit 平台有一个未解决的问题来添加对声明式套件的支持:https://github.com/junit-team/junit5/issues/744

目前,您可以继续使用 JUnit 4 来运行套件或定义自定义 Gradle 任务:

task unitTestSuite(type: Test) {
    useJUnitPlatform {
        excludeTags "JPA", "REST"
    }
    filter {
        includeTestsMatching "com.services.configuration.*"
    }
}
Run Code Online (Sandbox Code Playgroud)