В мрежата има много статии за това как да използвате 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
Добавяме пространство за имена и локал в заглавието на feature файла:
#language:en
@Namespace:Application.Autotests
Feature: Log to application*пространството за имена трябва да съвпада с името на .dll файла, в който се съдържат тестовите методи
Създаваме празни тестови случаи в TFS и добавяме тагове с техните ид-та към сценарии:

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

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


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


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

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

