我正在使用 JUnit 5.3.0-RC1,试图为新TestInstanceFactory
接口实现扩展。(我想从 Weld 获取对象以进行 CDI 注入等)
如果我实施TestInstanceFactory
,我可以创建自己的实例。如果我也实施AfterEachCallback
,我可以在每次测试后清理它们(关闭 Weld)。到目前为止,一切都很好。
但是:为此,我必须假设TestInstance.LifeCycle.PER_METHOD
。如果测试类使用TestInstance.Lifecycle.PER_CLASS
我将不得不检测到这一点并等到AfterAllCallback
销毁 Weld 之前。但是ExtensionContext.getTestInstanceLifecycle
被声明为Optional
,所以我可能无法判断哪个生命周期处于活动状态。
有没有办法让 JUnit 简单地告诉我何时销毁实例?最好有一个类似 的扩展TestInstanceDestructor
,只要 JUnit 使用完测试实例就会调用它。
其次,AfterEachCallback
从不要求@Disabled
测试,这意味着我无法清理通过我的TestInstanceFactory
. 开始焊接有点贵,所以理想情况下,无论如何我都会跳过为禁用测试做这项工作。有什么方法可以告诉我正在为禁用测试创建哪些实例?