Allure сделать статус теста FAILED при определённом условии

Всем привет! Возможно кто-то сталкивался с такой задачкой. Нужно при выполнение условия в тесте передать в Allure для данного теста статус FAILED

Делаю так, но получаю в отчёте пока только шаг

if(!getTextTitleModalWindow().equals("Новое расписание")) {
            Allure.step("Не найден заголовок модального окна при добаление нового рапсписания", Status.FAILED);
            Allure.getLifecycle().updateTestCase(Allure.getLifecycle().getCurrentTestCase().get(), testResult -> testResult.setStatus(Status.FAILED));
        }

А разве не проще и правильнее просто вызвать assert?

assertEquals("Новое расписание", getTextTitleModalWindow());

Тогда и статус у теста будет FAILED, и всё остальное будет в порядке.

Не хочу чтобы тесты падали из-за этой проверки)

Что-то мне подсказывает, что такое делается слушателем.

import io.qameta.allure.Allure;
import io.qameta.allure.listener.TestLifecycleListener;
import io.qameta.allure.model.*;

/**
 *
 */
public class ATestListener implements TestLifecycleListener {

    @Override
    public void beforeTestStop(final TestResult result) {
        if(!getTextTitleModalWindow().equals("Новое расписание")) {
            Allure.step("Не найден заголовок модального окна при добаление нового рапсписания", Status.FAILED);
            result.setStatus(Status.FAILED);
        }
    }
  
}
1 лайк

Спасибо) попробую

А зачем всё это? Что вы будете делать со своими упавшим шагом? Будете заглядывать во все зелёные отчёты и искать там упавшие шаги? Это же убивает всю суть понятия “автоматизация”.

Тест должен быть либо зелёным, либо красным. Если зелёный, на него вообще не надо смотреть. Если красный, надо открыть отчёт и найти причину.

4 лайка

Да вы правы) хотел проверить заголовок модального окна и другие действия в одном тесте. Наверное тогда раздел их на несколько тестов)

1 лайк

Да, разделить на несколько тестов - хорошая идея.

2 лайка