Установка и настройка SpecFlow

Установка и настройка SpecFlow

Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс

Всем привет и всех с Наступившим. Не писал уже как месяц… Что же, затрону тему Behaviour Driven Development (BDD) и ее реализацию в .NET.

Тесты SpecFlow пишутся в виде “фича-файлов”, которые могут иметь набор сценариев. Установка и настройка довольно проста и занимает несколько минут.

Нам нужно:

  1. Создать новый проект в Visual Studio
  2. Установить SpecFlow 
  3. Добавить SpecFlow к библиотекам проекта
  4. Добавить NUnit  к библиотекам проекта
  5. Добавить NUnit Framework

Шаг 1: Создание нового проекта

Для создание проекта со SpecFlow, единственное, что нужно сделать, – это создать проект типа Class Library.

1) Для этого перейдите в File -> New -> Project.

SpecFlow_1

2) Выберите соответствующий проект и назовите его “SpecFlowDemo“.

SpecFlow_2

3) Новый проект должен быть создан с именем по-умолчанию “Class1.cs.

SpecFlow_3

Шаг 2 : Установка SpecFlow, NUnit Adapter и NUnit Framework

1) Первое, что мы сделаем – это установим SpecFlow для Visual Studio.  Выберите Tools –> Extension and Updates..

SpecFlow_4

2) Убедитесь, что Интернет подключен, введите SpecFlow в окно поиска, а потом нажмите Download.

SpecFlow_5

Шаг 3 : Добавление SpecFlow к библиотекам проекта (References)

Иногда тестеры забывают об этом, потому что мы уже можем создать новый фича-файл, но не сможем добавить шаги реализация в другом классе…

1) Чтобы включить SpecFlow в библиотеки проекта выберите Tools -> NuGet Package Manager -> Manager Nuget Packages for Solutions…

SpecFlow_6

2) Снова должно появится окно установки: введите SpecFlow и нажмите Enter, а потом Install.

SpecFlow_7

После этого в консольном окне должно отобразится сообщение об успешной установке.

SpecFlow_8

3) Подобным образом устанавливаем NUnit Adapter и NUnit Framework.

Шаги настройки теста с использованием SpecFlow

Шаг 1 : Создание фича-файла

1) Теперь, когда среда настроена, можем приступать к созданию фича-файла. Для этого в контекстном меню проекта выберите Add –> New Item.

SpecFlow_9

2) Выберите SpecFlow Feature File, назовите его каким-то соответствующим именем и нажмите Add.

SpecFlow_10

3) Созданный файл будет иметь следующую структуру по-умолчанию. В целях обучения оставим его без изменения.

SpecFlow_11

Шаг 2 : Генерация шагов (Step Definition)

После создания сценариев в фича-файле нам следует реализовать все его шаги в другом файле, который являет собой простой C# файл со связями (Binding-атрибутами). Этот сгенерированный файл должен соответствовать шаблону сценариев.

1) Вызовите контекстное меню фича-файла и выберите опцию  Generate Step Definitions.

SpecFlow_12

2) Отобразится окно, которое попросит выбрать все или определенные шаги для генерации. Выберите все и нажмите кнопку Generate.

SpecFlow_13

3) Также будет предложено сохранить созданный класс – выберите место по-умолчанию (или корень проекта).

SpecFlow_14

4) После этого все шаги поменяют цвет. Это означает, что они связаны с методами реализации.

SpecFlow_15

5) Чтобы посмотреть конкретную реализацию шага, нужно выбрать нужный и нажать F12. Это откроет связанный метод реализации.

SpecFlow_16

Выполнение теста SpecFlow

1) Для отображения всех тестов вам понадобится выбрать в главном меню: Test -> Windows -> Test Explorer.

SpecFlow_17

2) Обратите внимание на открывшийся Test Explorer в левой части Visual Studio. Отображается наш единственный тест.

SpecFlow_18

Обратите внимание: если тест не отображается нужно сбилдить проект Build -> Build Solution. Если ничего не поменялось, выберите файл App.config и убедитесь, что параметр unitTestProvider должен включать NUnit или SpecFlow. как на скриншоте выше.

3) Для запуска Feature теста просто выберите Run Selected Tests при открытии контекстного меню теста в Test ExplorerТест должен выполнится успешно.

Обратите внимание: Выполнить тесты мы можем также при использовании команды контекстного меню фича-файла – Run SpecFlow Scenarios. Но иногда это не срабатывает.

Связанные статьи