Я пытаюсь получить доступ к централизованному объекту тестовых данных из моего класса afterSuite и зарегистрировать одну часть данных репортеру testNG в @aftersuite с помощью Reporter.log().Можете ли вы использовать TestNG Reporter.log() в @Aftersuite?
Вот мой код:
@AfterSuite(alwaysRun = true)
public void aftersuite()
{
int count = glikkerData.getGlickers();
Reporter.log("Number of glikkers: " + count);
}
Я не получаю желаемое утверждение в докладе TestNG. Недействителен ли параметр «Reporter.log()» в функции @aftersuite?
Update - Конкретный сценарий
У меня есть проект под названием TestNG "ImageManager". Он использует отдельную библиотеку, созданную мной под названием «CustomJerseyClient». Этот проект CustomJerseyClient использует log4j для регистрации ошибок подключения с запросов клиентов из Джерси. Также в CustomJerseyClient я создал пользовательский log4j appender (я называю этот log4j appender «TestNGReportAppender» - see this S.O. post), который добавляет все loggingEvents к статическому массиву событий регистрации.
public class TestNGReportAppender extends AppenderSkeleton {
private static ArrayList<LoggingEvent> listEvents = new ArrayList<LoggingEvent>();
public static ArrayList<LoggingEvent> getListEvents() { return listEvents; }
@Override
protected void append(final LoggingEvent event) {
listEvents.add(event);
Reporter.log(eventToString(event));
}
private String eventToString(final LoggingEvent event) {
...
}
public boolean requiresLayout() {
return true;
}
}
Цель состоит в том, чтобы пройти этот статический массив протоколирования событий из CustomJerseyClient и подсчета количества ошибок соединения, после того, как все тесты в ImageManager закончили. Данные об ошибках соединения уже стекаются вверх от CustomJerseyClient к ImageManager (через TestNGReportAppender), но сейчас я не могу получить эти данные, полученные через TestNG Reporter после того, как все тесты были выполнены - прямо сейчас, когда данные застревают в проекте.
Является ли утверждение не отображающимся или имеет другое значение, чем ожидалось? – mfulton26
Это не отображается. –
Я только что нашел [эту ссылку] (https://groups.google.com/forum/#!msg/testng-users/8ncZt1ga7Bs/Jk287VvaoVcJ), которая предлагает (см. Последний комментарий), что Reporter.log() не работа в @aftersuite. Они предлагают использовать onTestFinish() в ITestListener. –