Я использую JUnit 5.3.0-RC1, пытаясь реализовать расширение для нового интерфейса TestInstanceFactory
. (Я хочу получить объекты из Weld для инъекции CDI и т. Д.)
Если я реализую TestInstanceFactory
, я могу создавать свои собственные экземпляры. Если я также использую AfterEachCallback
, я могу очистить их (выключить сварку) после каждого теста. Пока все хорошо.
Однако: для этого я должен предположить TestInstance.LifeCycle.PER_METHOD
. Если в тестовом классе используется TestInstance.Lifecycle.PER_CLASS
, мне придется обнаружить это и подождать до AfterAllCallback
, прежде чем уничтожить сварку. Но ExtensionContext.getTestInstanceLifecycle
объявлен как Optional
, поэтому я не могу сказать, какой жизненный цикл активен.
Есть ли способ заставить JUnit просто сказать мне, когда уничтожить экземпляр? Было бы неплохо иметь расширение типа TestInstanceDestructor
, которое вызывалось бы всякий раз, когда JUnit заканчивал использовать экземпляр теста.
Во-вторых, AfterEachCallback
никогда не вызывается для @Disabled
тестов, что означает, что я не могу очистить экземпляры, созданные с помощью моего TestInstanceFactory
. Запуск Weld довольно дорог, поэтому в любом случае я бы пропустил эту работу для отключенных тестов. Можно ли как-то определить, какие экземпляры создаются для отключенных тестов?