В мрежата има много статии как да се използва SpecFlow, как да се настрои TFS за изпълнение на тестове, но няма нито една, която да съдържа всички аспекти. В статията ще разкажа как можете да направите старта и редактирането на сценарии SpecFlow удобно за всички.
Под заглавието ще научите как да получите:
- Стартиране на тестове от TFS
- Автоматично свързване на сценарии с тестови случаи в TFS
- Винаги актуално съдържание на тестовите случаи в TFS
- Възможност за редактиране на сценарии директно в системата за контрол на версиите от тестерите

Предистория
Задачата ни беше да автоматизираме тестването на приложението, използвайки BDD подход. Тъй като основната система за проследяване на задачи в нашата компания е TFS, в ума ми се оформи картина, където стъпките на сценария SpecFlow са стъпките на тестовите случаи в TFS, а стартирането на тестовете се осъществява от тестовите планове. По-долу ще разкажа как го реализирах.
Какво ще ни трябва:
- Проект с тестове на SpecFlow
- Azure DevOps Server (другото име е Team Foundation Server)
- Инструмент за синхронизиране на сценарии SpecFlow с тестовите случаи в TFS
Настройка
1. Създаване на сборка на проекта с тестове
Тук всичко е просто, създаване и публикуване на артефакти. За третата задача по-подробно по-късно.

2. Създаване на релиз за стартиране на тестове
Създаваме релиз с една задача — Visual Studio Test

В този случай задачата е настроена за ръчно стартиране на тестове от тестовия план

3. Синхронизиране на тестовите случаи
Знаем, че Visual Studio позволява да се свържат тестовите методи с тестовите случаи в TFS и да се стартират от тестовите планове. За да не се прави това ръчно и също за да синхронизираме съдържанието на сценарии, написах прост конзолен приложение . Принципът е прост — парсваме feature файла и с помощта на API TFS обновяваме тестовите случаи.
Как да използвате FeatureSync
Добавете namespace и локал на заглавието на feature файла:
#language:en
@Namespace:Application.Autotests
Feature: Log to application*namespace трябва да съвпада с името на .dll файла, в който се съдържат тестовите методи
Създайте празни тестови случаи в TFS и добавете тагове с техните id към сценарии:

@2124573 @позитивен
Сценарий: Успешна авторизация
Given аз на страницата за авторизация
И аз въвеждам:
| Логин | Парола |
| потребител | парола |
Когато натисна бутона за вход
Тогава браузърът пренасочва на началната страницаСтартираме FeatureSync:
FeatureSync.exe -f C:ПапкаСFeatures -s https://tfs.server.com/collection -t 6ppjfdysk-your-tfs-token-2d7sjwfbj7rzbaВ нашия случай стартирането става след сборката на проекта с тестовете:

Резултат от синхронизацията
Синхронизирани са стъпките на сценария SpecFlow и е зададен статус Automation


4. Настройка на тестовия план
Създаваме тестов план, добавяме нашите автоматизирани случаи в него, в настройките избираме версия и рилийз.


5. Стартиране на тестовете
Избираме необходимия тест в тестовия план и го стартираме.

Заключение
Плюсове на тази конфигурация:
- Всеки тестер може да отвори файла fetaure в уеб формата за контрол на версиите, да го редактира и промените ще влязат в сила веднага след компилирането.
- Може да стартираме тестовете по всяко време индивидуално.
- Прозрачна тестова модел — винаги знаем какво прави теста, който стартираме.
Източник: habr.com

