Создаются attachemts но не прикрепляются к Allure репорту

Всем привет)
Такая проблема: создаются скриншоты для зафейленных тестов в папке allure-results, но они отсутствуют на странице allure-репорта

Из-за чего это может происходить?

Можете предоставить пример кода как вы его вызываете в тесте ?

@alexey_lakovych

@RunWith(Suite.class)
@Suite.SuiteClasses({CukesFeaturesRunner.class})

public class MainRun extends BaseStep {

@BeforeClass
public static void beforeSuite(){
    setUniqueValue(Common.generateRandomValue());
    setRandomString();
}

@Before
public static void setUp(){
    getCleanState();
}

@After
public static void tearDown(Scenario scenario){

    if(scenario.isFailed()) {
        byte [] screenshot = getSuite().getDriver().makeScreenshot();
        saveScreenshotForAllure(screenshot);
        scenario.embed(screenshot, "image/png");
    }
}

@AfterClass
public static void afterSuite(){
    getSuite().getDriver().quit();
}

@Attachment(value = "screenshot", type = "image/png")
private static byte[] saveScreenshotForAllure(byte[] screenshot){
    return screenshot;
}

}

Вы уверены в том что ваш @After отрабатывает после теста, а конкретно его условие scenario.isFailed()?
Сделайте вывод в консоль в данном блоке, или с помощью дебага проверьте.

  • ко всему у вас аттачмент стоит в аннотации After. Не уверен что он будет отображаться в тесте при таком случае.

@alexey_lakovych, точно уверен. Проверено: если тест проходит без ошибок - скриншота нет в папке allure-report; если тест фэйлится - создается скриншот

Значит вам нужно реализовать слушатель который будет цеплять скриншот к тесту. Аннотация @After не является тестом. Соответственно в тесте у вас нет никакого аттачмента.

Для проверки “работоспособности” в методе с аннотацией Test вызовите метод аттачмента. и посмотрите есть ли в отчете скриншот.

@alexey_lakovych, вы правы на счет аннотации @After - я добавил вызов метода аттачмента в один из степов сценария и скриншот появился в репорте:)

Я создал класс, который наследуется от RunListener’a.
Я попытался подключить его через конструктор CukesFeaturesRunner класса
( JUnitCore jUnitCore = new JUnitCore();
jUnitCore.addListener(new ExecutionListener())
Но логи, которые говорят, что листенер был не правильно подключен - логи не высвечиваются на консоли.

Не могли бы вы подсказать как правильно, подключить листенер в сьют в связке с кукумбером?

Imgur: The magic of the Internet

Скорее всего через pom.xml в maven-surefire-plugin плагине.
По аналогии с AllureRunListener

@alexey_lakovych, благодарю за помощь, очень помогли:)