我正在使用 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. 开始焊接有点贵,所以理想情况下,无论如何我都会跳过为禁用测试做这项工作。有什么方法可以告诉我正在为禁用测试创建哪些实例?