如何将假设应用于 Junit5 中的所有嵌套测试?

How to apply an assumption to all nested tests in Junit5?

我已将 Junit4 套件转换为嵌套的 Junit5 类:

class MadvocSuiteTest {
    @Nested
    class HelloActionTest extends HelloActionTestBase {}
    @Nested
    class SimpleTest extends SimpleTestBase {}
    ...
}

我必须跳过 Java9 的套件(因为 MultiRelease-Jars 在扩展模式下不工作)。

我如何为整个套件做到这一点,即所有嵌套 类,而不是将 assumeTrue 添加到每个测试?

每当您遇到多个 JUnit Jupiter 测试需要的功能时 class,请考虑新的扩展模型。在您的情况下,Conditional Test Execution 扩展点。

以下是迈克·科比特 (Mike Kobit) 可能希望您执行的操作示例。定义您自己的扩展名 DisabledOnJava9,例如:

@ExtendWith(DisabledOnJava9Condition.class)
public @interface DisabledOnJava9 {}

和他的处理程序一样 DisabledOnJava9Condition.java。现在您可以在任何您想要的元素上使用您的 DisabledOnJava9 注释。这包括整个测试 class 或任何嵌套的 class.

在这里找到 Mike 的所有类型的来源:https://github.com/mkobit/junit5-conditional-execution-extensions

这是实现此扩展点的另一个示例:https://blog.codefx.org/libraries/junit-5-conditions/