如何拦截用@Disabled注释的JUnit5方法?

Liv*_*usu 1 junit5

我想编写一个JUnit5扩展,我必须在找到使用@Disabled注释的测试方法时采取一些操作.不幸的是,没有为此类方法调用beforeTestExecution().有没有人知道如何拦截这种@Disabled测试方法?

谢谢 !

Mar*_*ipp 5

如" 用户指南"中所述,您可以通过设置为禁用默认ExecutionCondition处理的内置(请参阅有关如何设置它的配置参数).这将导致您的测试被执行.@Disabledjunit.jupiter.conditions.deactivateorg.junit.*DisabledCondition

接下来,您需要实现自己的ExecutionCondition扩展,检查@Disabled,采取行动并返回ConditionEvaluationResult.disabled("...").

为了避免在每个测试类上注册您的分机,您可以激活自动分机注册并在全球注册您的分机.

根据您想要实现的目标,可能更容易注册您自己的TestExecutionListener(请参阅插入您自己的测试执行监听器)并实施executionSkipped().