Обновлено до 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