Как генерировать собственный отчёт в тестах NUnit (Selenium WebDriver, C#)

Как генерировать собственный отчёт в тестах NUnit (C# + Selenium WebDriver)

Сразу хочу сказать, что NUnit используется мной при написании автоматических тестов с помощью C# + Selenium WebDriver, но думаю это не играет особой роли при создании инструмента генерации собственного отчёта. Отчёт формируется в формате HTML.

Вот пример отчёта, который генерируется (нажмите на картинку, для увеличения):

Как генерировать собственный отчёт в тестах NUnit (C# + Selenium WebDriver)

Как видим в отчёте имеется информация о том, когда начат тест, когда тест завершён, сколько тестов запущено, сколько выполнено успешно, сколько провалено, каков процент прохождения тестов. Также отчёт имеет ссылку на тест-кейс, на который написан автоматический тест, если тест провален, то есть ссылка на скриншот страницы, который сделан в момент возникновения ошибки. Если вы не используете тесты веба, то вам придётся доработать/изменить отчёт под себя.

Начнём рассматривать код, который нам потребуется для реализации отчёта.

Первым делом не забываем объявить все необходимые переменные.
Далее создадим метод, который будет формировать отчёт.
Создадим «обвязку» для тестов, чтобы формировался отчёт, и чтобы корректно фиксировался результат прохождения теста (успешный/проваленный).

Теперь приведу всю структуру всего работающего кода. Кстати, у меня тесты хранятся в EXE, поэтому структура немного отличается, но явно не запутает тех, кто пишет тесты в виде DLL.

Обратите внимание, что в первом столбце указывается номер проходимого теста. У нас он привязывается к номеру тест-кейса, которые мы создаём в специальном дополнении к JIRA. Поэтому мы стараемся автотест привязать к тест-кейсу и для этого:
— автотесты именуем как тест-кейсы;
— добавляем ссылку на тест-кейс в отчёте, чтобы с отчёта можно было быстро перейти в тест-кейс, для получения информации о проводимой проверке и исходной информации.

Один из минусов данного метода генерации отчёта — обвязка тестов, которая увеличивает количество строк кода:

В момент написания и отладки теста я не использую обвязку и только после того как тест отлаживается он помещается в обвязку.

Надо было придумать быстрое решение для корректной визуализации пройденных тестов, поэтому и была придумана генерация отчёта в процессе прохождения тестов.

Возможно позже придумаем парсер стандартных отчётов и будем их парсить не используя обвязки тестов и генераторы отчётов. Возможно интегрировав тесты в систему непрерывной интеграции, мы будем использовать возможности этих систем, тем более судя по отзывам они могут парсить отчёты NUnit, но пока тесты у нас не интегрированы.

Возможно данное решение может кому-нибудь пригодиться.

Обновлено 02.08.2017: система непрерывной интеграции TeamCity не генерирует понятные отчёты, поэтому на данный момент оставили наш самогенерирующийся отчёт, так как он удобен.
Для тех кто использует Selenium WebDriver: в процессе улучшения отчёта я ещё добавил в столбец «Скриншот» вывод URL страницы, на которой тест провалился, для этого надо расширить код там где отображается в отчёте ссылка на скриншот:

заменить на:

  • Понравилось? Добавьте в избранное или поделитесь с друзьями:

Добавить комментарий

Ваш e-mail не будет опубликован.