Всем привет)
Такая проблема: создаются скриншоты для зафейленных тестов в папке allure-results, но они отсутствуют на странице allure-репорта
Из-за чего это может происходить?
Всем привет)
Такая проблема: создаются скриншоты для зафейленных тестов в папке allure-results, но они отсутствуют на странице allure-репорта
Из-за чего это может происходить?
Можете предоставить пример кода как вы его вызываете в тесте ?
@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()?
Сделайте вывод в консоль в данном блоке, или с помощью дебага проверьте.
@alexey_lakovych, точно уверен. Проверено: если тест проходит без ошибок - скриншота нет в папке allure-report; если тест фэйлится - создается скриншот
Значит вам нужно реализовать слушатель который будет цеплять скриншот к тесту. Аннотация @After не является тестом. Соответственно в тесте у вас нет никакого аттачмента.
Для проверки “работоспособности” в методе с аннотацией Test вызовите метод аттачмента. и посмотрите есть ли в отчете скриншот.
@alexey_lakovych, вы правы на счет аннотации @After - я добавил вызов метода аттачмента в один из степов сценария и скриншот появился в репорте:)
Я создал класс, который наследуется от RunListener’a.
Я попытался подключить его через конструктор CukesFeaturesRunner класса
( JUnitCore jUnitCore = new JUnitCore();
jUnitCore.addListener(new ExecutionListener())
Но логи, которые говорят, что листенер был не правильно подключен - логи не высвечиваются на консоли.
Не могли бы вы подсказать как правильно, подключить листенер в сьют в связке с кукумбером?
Скорее всего через pom.xml в maven-surefire-plugin плагине.
По аналогии с AllureRunListener