У нас есть внутренний инструмент, который распределяет сотни тысяч тестов среди облачных рабочих. Я написал инструмент, который обнаруживает все тесты, которые необходимо запустить с помощью LauncherDiscoverRequest
, и все работает. Однако некоторые из наших тестов (и тестовых классов) имеют аннотации @Disabled
или @Ignore
. Эти тесты по-прежнему обнаруживаются и назначаются тестовым рабочим, но, конечно, тесты ничего не делают, поэтому они просто тратят ресурсы впустую. Я хотел бы идентифицировать и фильтровать эти тесты во время обнаружения, чтобы они не были включены в TestPlan
.
Я нашел JupiterTestDescriptor::shouldBeSkipped(JupiterEngineExecutionContext)
, но не вижу хорошего способа вызвать его, например, из PostDiscoveryFilter
.
Я могу использовать пользовательский PostDiscoveryFilter
для идентификации источника каждого теста, а затем использовать отражение, чтобы определить, аннотирован ли метод или класс, но это хакерство и не охватывает общий случай: есть другие способы отключить тесты.
Как лучше всего отфильтровать пропущенные тесты во время обнаружения?