我想编写一个JUnit5扩展,我必须在找到使用@Disabled注释的测试方法时采取一些操作。不幸的是,没有为此类方法调用beforeTestExecution()。有没有人知道如何拦截这种@Disabled测试方法?
谢谢!
答案 0 :(得分:5)
正如sqlite3_finalize()中所述,您可以通过将ExecutionCondition
设置为@Disabled
来停用默认处理junit.jupiter.conditions.deactivate
的内置org.junit.*DisabledCondition
(请参阅{ {3}}关于如何设置它)。这将导致您的测试被执行。
接下来,您需要实施自己的ExecutionCondition
扩展程序,检查@Disabled
,采取行动并返回ConditionEvaluationResult.disabled("...")
。
为了避免在每个测试课程中注册您的扩展程序,您可以激活User Guide并在全球范围内注册您的扩展程序。
根据您希望实现的目标,可能更容易注册您自己的TestExecutionListener
(请参阅Configuration Parameters)并实施executionSkipped()
。
答案 1 :(得分:0)
可能有趣的是找出几个实现者如何组成,即如果第二个将被调用,在什么情况下。您可能不得不深入研究Jupiter代码或进行一些实验。