Обновлено до 2.2 версии.
Нововведения:
- Добавлен новый метод
RunStep
с одной перегрузкой.
- Добавлен новый класс
Verify
- Добавлено два новых метода, отвечающие за настройку действий при ошибках в проверках Verify и RunStep
- Теперь шаги, которые были выполнены в методах [SetUp] и [TearDown] в отчётах будут отображаться не в TestBody, а соответственно в SetUp и TearDown.
- Файл categories.json больше не будет удаляться из allure-results.
- Проигнорированные тесты теперь помечаются как skipped, а не broken.
Теперь подробнее.
- Два новых настроечных метода:
AllureLifecycle.Instance.SetGlobalActionInException(Action action)
и
AllureLifecycle.Instance.SetCurrentTestActionInException(Action action)
Можно указать, какие действия нужно дополнительно выполнять, если в методе RunStep
или в проверках в классе Verify
возникла ошибка/проверка не прошла.
Например, вы можете добавить, чтобы в отчёт при ошибке так же прикреплялся скриншот:
AllureLifecycle.Instance.SetGlobalActionInException(() =>
{
DriverManager.MakeScreenshotAtStep();
});
Это глобальная настройка для всех тестов, её достаточно вызвать один раз.
Метод SetCurrentTestActionInException
отвечает за настройку доп. действий для конкретного теста и существует только в рамках запуска теста, если её указали.
Используется опционально.
-
Метод AllureLifecycle.Instance.RunStep(string stepName, Action action)
оборачивает указанный string в аллюр-степ.
Если в данном методе возникнет исключение - тест зафэйлится с исключением.
В отчёт при этом будет добавлен сабстеп у шага stepName
, с текстом исключения.
Если вы добавите доп. логику через настроечные методы из п.1, то эта информация так же добавится в отчёт как сабстепы у stepName
.
Если же ошибок не будет, то шаг stepName
в отчёте просто будет зелёный.
-
Класс Verify
- это по сути копия Assert
из NUnit с дополнительным функционалом.
Использование, например так:
AllureLifecycle.Instance.Verify.That("Проверяем, что 5 больше 2", 5, Is.GreaterThan(2));
Если при данной проверке возникнет исключение (т.е. она не пройдёт), тест не упадёт и пойдёт дальше, при этом информация в отчёт будет добавлена по такой же логике, как в методе RunStep
.
Подходит для большого количества проверок в рамках одного теста.
Т.е. все непрошедшие проверки будут отображены как неудачные шаги с информацией из исключений.
В отчёте так же будет наглядное сообщение о всех непрошедших проверках в ходе теста:
Screenshot
PS: Так же вы можете использовать RunStep
внутри другого RunStep
, если произойдёт ошибка, то все связанные шаги будут окрашены красным.
Либо использовать Verify
внутри RunStep
.
Более полные примеры использования нововведений вы можете посмотреть здесь: https://github.com/Noksa/Allure.NUnit/blob/master/TestsSamples/Tests1.cs