Удобен BDD: SpecFlow+TFS

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

Подробности ще научите как да получите:

  • Стартиране на тестове от TFS
  • Автоматично свързване на сценарии с тестови случаи в TFS
  • Винаги актуално съдържание на тестовите случаи в TFS
  • Възможност за редактиране на сценарии директно в системата за контрол на версиите от тестови специалисти
    Удобен BDD: SpecFlow+TFS

Предистория

Справихме се с задачата да автоматизираме тестването на приложението, използвайки подхода BDD. Тъй като основната система за управление на задачите в нашата компания е TFS, в главата ми се оформи представа, че стъпките на сценария SpecFlow — това са стъпките на тестовите случаи в TFS, а тестовете се стартират от тестовите планове. По-долу ще опиша как реализирах това.

Какво ще ни трябва:

  1. Проект с тестове на SpecFlow
  2. Azure DevOps Server (известен още като Team Foundation Server)
  3. Инструмент за синхронизиране на сценарии SpecFlow с тестови случаи в TFS

Настройка

1. Създаване на билд на проекта с тестовете

Тук всичко е просто, билд и публикуване на артефакти. За третата задача по-подробно по-надолу.

Удобен BDD: SpecFlow+TFS

2. Създаване на релиз за стартиране на тестове

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

Удобен BDD: SpecFlow+TFS

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

Удобен BDD: SpecFlow+TFS

3. Синхронизиране на тестовите случаи

Знаем, че Visual Studio позволява линковане на тестови методи със случаи в TFS и стартиране от тестовите планове. За да не правим това ръчно, а също и за да синхронизираме съдържанието на сценарии, написах просто конзолно приложение FeatureSync. Принципът е прост — парсваме feature файл и с помощта на API TFS обновяваме тестовите случаи.

Как да използваме FeatureSync

Добавяме пространство за имена и локал в заглавието на feature файла:

#language:en
@Namespace:Application.Autotests
Feature: Log to application

*пространството за имена трябва да съвпада с името на .dll файла, в който се съдържат тестовите методи

Създаваме празни тестови случаи в TFS и добавяме тагове с техните ид-та към сценарии:

Удобен BDD: SpecFlow+TFS

@2124573 @позитивен
Сценарий: Успешна авторизация
    Дадено, че съм на страницата за авторизация
    И въвеждам:
        | Логин | Парола |
        | потребител | парола |
    Когато натисна бутона за вход
    Тогава браузърът пренасочва към началната страница

Стартираме FeatureSync:

FeatureSync.exe -f C:FolderWithFeatures -s https://tfs.server.com/collection -t 6ppjfdysk-your-tfs-token-2d7sjwfbj7rzba

В нашия случай стартирането става след изграждането на проекта с тестовете:

Удобен BDD: SpecFlow+TFS

Резултат от синхронизацията

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

Удобен BDD: SpecFlow+TFS

Удобен BDD: SpecFlow+TFS

4. Настройка на тестовия план

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

Удобен BDD: SpecFlow+TFS

Удобен BDD: SpecFlow+TFS

5. Стартиране на тестовете

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

Удобен BDD: SpecFlow+TFS

Заключение

Плюсове на тази конфигурация:

  • всеки тестер може да отвори файл с функция в уеб формата за контрол на версиите, да го редактира и промените ще влязат в сила веднага след компилацията
  • може да се стартират тестове по всяко време поотделно
  • прозрачна тестова модел — винаги знаем какво прави тестът, който стартирахме.

Източник: habr.com

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster