2016-02-19 2 views
0

Я пытаюсь получить доступ к централизованному объекту тестовых данных из моего класса 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 после того, как все тесты были выполнены - прямо сейчас, когда данные застревают в проекте.

+0

Является ли утверждение не отображающимся или имеет другое значение, чем ожидалось? – mfulton26

+0

Это не отображается. –

+0

Я только что нашел [эту ссылку] (https://groups.google.com/forum/#!msg/testng-users/8ncZt1ga7Bs/Jk287VvaoVcJ), которая предлагает (см. Последний комментарий), что Reporter.log() не работа в @aftersuite. Они предлагают использовать onTestFinish() в ITestListener. –

ответ

0

Reporter.Log не будет работать после набора либо напрямую, либо через TestListenerAdapter. Я просто попробовал его. Можете ли вы сказать мне, были ли ваши выводы одинаковыми?

Не могли бы вы объяснить свой пример использования точно так же, как в том, что вы хотите рассчитать и как выглядит ваш механизм отчетности? Если это общий вариант использования, я мог бы создать что-то важное.

+0

Хорошо, я обновил свой вопрос более подробно. Мне не удалось заставить Reporter.Log() работать напрямую. Я еще не пробовал TestListenerAdapter - я могу попробовать это дальше. –