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

Установка TestCaseID в рантайме Java/Allure/TestNG

allure
java
Теги: #<Tag:0x00007f7b60d9fbd8> #<Tag:0x00007f7b60d9f700>

#1

Всем привет!

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


(Taras) #2

Я для етого написал свою анотацию и в @Attachment к каждому тесту добавляю ссилку на тест кейс, @Attachment работает в лисенере после каждого теста


#3

Спасибо, попробую и ваш метод.
Пока решил при помощи LifecycleListener


(Taras) #4

можете пример виложить , а то не юзал еще листенер алюра


#5
import ru.yandex.qatools.allure.Allure;
import ru.yandex.qatools.allure.config.AllureModelUtils;
import ru.yandex.qatools.allure.events.TestCaseStartedEvent;
import ru.yandex.qatools.allure.experimental.LifecycleListener;

public class AllureListener extends LifecycleListener {

    static {
        // add this listener to allure lifecycle as described in LifecycleListener doc
        Allure.LIFECYCLE.addListener(new AllureListener());
    }

    @Override
    public void fire(TestCaseStartedEvent event) {
        // get test case id in runtime from description(just for example)
        String testCaseId = findIdByDescription(event.getDescription().getValue());
        // assign testCaseId to allure report
        super.fire(event.withLabels(AllureModelUtils.createTestLabel(testCaseId)));
    }
}

(Taras) #6

где подключить етот лисенер ?