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

Теги: #<Tag:0x00007f739cd144c8> #<Tag:0x00007f739cd143b0> #<Tag:0x00007f739cd142e8> #<Tag:0x00007f739cd141f8> #<Tag:0x00007f739cd140e0>

Всем привет! Возможно кто-то сталкивался с такой задачкой. Нужно при выполнение условия в тесте передать в 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 симпатия

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

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

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

3 симпатии

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

1 симпатия

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

1 симпатия