Как настроить listener для переопределения поведения класса loggingreporter в citrus?

Я ищу способ удалить следы стека утверждений об ошибках при использовании фреймворка Цитрусовые.

В testNg это делается так:

public class NoStackTraceListener implements ITestListener {
...
@Override
public void onTestFailure(ITestResult iTestResult) {
    Throwable th = iTestResult.getThrowable();
    if (Objects.nonNull(th)) {
        System.out.println(th.getMessage());
        iTestResult.setThrowable(null);
    }
}
...
}

@Listeners({ NoStackTraceListener.class })
class A {...}

Но я не могу найти ни одного примера использования класса TestListener или других, чтобы переопределить предоставленную реализацию LoggingReporter.

Пожалуйста, кто-нибудь уже переопределил Слушатель с помощью рамки цитрусовые и мог бы дать фрагмент для этого?

Спасибо

0
0
103
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам нужно добавить настраиваемый репортер как bean-компонент в контекст приложения Spring:

@Bean
public NoStackTraceReporter noStackTraceReporter() {
    return new NoStackTraceReporter();
}

Вы также можете перезаписать репортер журналирования по умолчанию, выбрав имя компонента loggingReporter.

@Bean
public NoStackTraceReporter loggingReporter() {
    return new NoStackTraceReporter();
}

Затем реализация NoStackTraceReporter может перезаписать конкретный обработчик событий для неудачных тестов:

public class NoStackTraceReporter extends LoggingReporter {
...
    @Override
    public void onTestFailure(TestCase test, Throwable cause) {
        // do something customized
    }
...
}

Также вы можете перезаписать метод generateTestResults() в интерфейсе репортера, чтобы настроить результаты регистрации.

Вы также можете следовать образцу http://www.citrusframework.org/samples/reporting/, который демонстрирует, как добавлять настроенные репортеры в Citrus.

Другие вопросы по теме