Allure+TestNG+Jenkins, в отчет как-то можно вставить Reporter Ouput?

jenkins
java
allure
testng
Теги: #<Tag:0x00007fedbbf6a0d0> #<Tag:0x00007fedbbf69f90> #<Tag:0x00007fedbbf69d38> #<Tag:0x00007fedbbf69bf8>

(X-NoNAME) #1

В коде тестов использую Reporter.log() для информативности стандартных отчетов. Подключив Allure данного вывода не увидел.
Его возможно подключить?

См. скриншот:


Allure2 @Step("{0}") не корректно отображает аргумент метода
(X-NoNAME) #2

Разобрался, реализовал через @Attachment

Attachment получаю в методе afterInvocation листенера IInvokedMethodListener2


(Михаил Братухин) #3

А у вас отовсюду эти вложения (@Attachment) подкладываются? А то у меня на проекте они только из одного модуля подкладываются, а от наследованного класса с переопределенным методом - не работает. Чую, что дело в каких-то листенерах и мавене, но пока не докопался до истины. :sweat:


(X-NoNAME) #4

Вроде отовсюду, у меня так сделано:

UPD:
Добавил в Base тестовый метод и переопределил его в одном из наследников - сработало нормально, аттачмент прикрепился.


(Михаил Братухин) #5

У меня фреймворк с другого проекта, через мавен зацеплен в External Libraries, также как и Allure.
Если я даже в отнаследованном классе вызываю базовый метод, который в External Libraries, то отчет подкадывается и все хорошо. А вот если переопределяю в этом классе метод этот или делаю другой, с дополнительными параметрами, то уже не подкладывается. Ну, или из любого своего другого метода если буду просто вызывать @Attachment, то он тоже не сработает. При этом в базовом классе вообще не увидел отсылок к листенерам, только импорт

> import ru.yandex.qatools.allure.annotations.Attachment;

(Eugene Moskalenko) #6

Я бы сделал не так, а вот как-то так. Создал бы allure logger:

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import ru.yandex.qatools.allure.annotations.Step;

public class AllureLogger {

    private static final Logger logger = LogManager.getLogger(AllureLogger.class);

    @Step("{0}")
    public static void logToAllure(String log) {
        logger.debug("Logged to allure: " + log);
    }
}

и в тесте бы добавлял вот такое:

AllureLogger.logToAllure("Отправляем HELLO");

выглядело бы это как-то так:

Тогда можно было бы управлять и не писать что попало в аттачменты. Только прикрутить твой репортер, а не org.apache.logging.log4j.LogManager;

Если этот респонс - отдельный метод, то сделать их как @Step()


(X-NoNAME) #7

Да, так намного лучше. Спасибо!