Я не знаю, изменились ли API с тех пор, но я хотел сделать нечто подобное при первоначальном тестировании JUnit 5. (См. здесь .)
Извините за простой дамп кода, но это кажется достаточно простым, что, вероятно, говорит само за себя:
public final class KnownIssueExtension implements TestExecutionExceptionHandler {
@Override
public void handleTestExecutionException(final TestExtensionContext context,
final Throwable throwable)
throws Exception {
final Method testMethod = context.getTestMethod().get();
if (!testMethod.isAnnotationPresent(KnownIssue.class)) {
throw throwable;
}
}
}
(Примечание: не проверено, даже для компиляции.)
Edit:
О, я только что заметил Пропустить , а не игнорировать сбой. В этом случае что-то вроде вашего закомментированного кода не работает:
final Optional<Method> methodOptional = context.getTestMethod();
if (methodOptional.isPresent()
&& methodOptional.get().isAnnotationPresent(KnownIssue.class)) {
// ...
}