Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Как в Allure подсунуть свой AllureTestListener ?

allure
testng
Теги: #<Tag:0x00007f7b62b66950> #<Tag:0x00007f7b62b66810>

(Taras) #1

хочу в AllureTestListener переписать 2 метода (название сюта и название теста) - как подсунуть свой лисенер в репорт ? использую TestNG для test run-а


Согласно етому прописал свой лисенер в surefire-plugin - не работает

использую mvn site для генерации через мавен плагин и также Jenkins plugin allure

Может как то сюда впихнуть можно ?


(Sergey Korol) #2

Этот вики - древючий. На него не стоит ориентироваться. Если нужно что-то дописать / переписать, то можно просто пересобрать testng adaptor. Там всего 1 класс.

Ну и к слову, нет особого смысла сейчас это делать, ибо новый адаптер 2й версии уже почти готов.


(Taras) #3

куда его впихнуть ? ето listener ?


(Taras) #4

оно ?


(Sergey Korol) #5

Да, его можно модифицировать и пересобрать.


(Taras) #6

ну я его extend-нулся от него и подключил в лисенери surefire plugin-a , не работает


(Sergey Korol) #7

2 раза ж уже повторил: eго не экстендить надо, а пересобирать, и подключать в качестве новой зависимости. Ваш слушатель будет срабатывать позже алюровского. И он по факту ничего не будет переопределять. Они будут работать вместе.


(Taras) #8

омг, то геморой, то отдельное депенденси нужно сиборать типа…


(I Kozzz) #9

ну как вариант можно сделать свой класс лисснер, заоверрайдить там то что требуется и подключить к аллюру при инициализации фреймворка.
например так: (TestNG)

@BeforeSuite(alwaysRun = true)
public void setUp() {
Allure.LIFECYCLE.addListener(AllureStepListener.getInstance());
}

В данном случае я просто делаю что то еще в начале степа:

public class AllureStepListener extends LifecycleListener {
private static AllureStepListener instance;
public static synchronized AllureStepListener getInstance() {
if (instance == null) {
instance = new AllureStepListener();
}
return instance;
}

@Override
public void fire(StepStartedEvent event) {
    String stepName = " ";
    try {
        stepName = event.getTitle();
        "что то интересное"
    } catch (Exception e) {
        e.getMessage();
    } finally {
        "что то полезное"
    }
}

}