У сетцы ёсць шмат артыкулаў аб тым як выкарыстоўваць SpecFlow, як наладжваць TFS для запуску тэстаў, але няма ні адной якая ўтрымлівала б у сабе ўсе аспекты. У артыкуле я раскажу, як можна зрабіць запуск і рэдагаванне сцэнарыяў SpecFlow зручным для ўсіх.
Пад катом вы даведаецеся як атрымаць:
- Запуск тэстаў з TFS
- Аўтаматычны лінк сцэнарыяў да тесткейс у TFS
- Заўсёды актуальны змест тесткейсаў у TFS
- Магчымасць рэдагаваць сцэнары прама ў сістэме кантролю версій тэсціроўшчыкамі
перадгісторыя
Перад намі ўстала задача аўтаматызаваць тэсціраванне прыкладання выкарыстоўваючы BDD падыход. Так як асновай сістэмай таск-трэкінга ў нашай кампаніі з'яўляецца TFS, у маёй галаве склалася карціна, дзе крокі сцэнара SpecFlow - гэта крокі тесткейсаў у TFS, а запуск тэстаў ажыццяўляецца з тэст-планаў. Далей аб тым як я гэта рэалізаваў.
Што нам спатрэбіцца:
- Праект з тэстамі на SpecFlow
- Azure DevOps Server (aka Team Foundation Server)
- Інструмент для сінхранізацыі сцэнарыяў SpecFlow з тесткейсамі ў TFS
Настройка
1. Стварэнне зборкі праекту з тэстамі
Тут усё проста, зборка і публікацыя артэфактаў. Аб трэцім цяге падрабязней далей.
2. Стварэнне рэлізу для запуску тэстаў
Ствараем рэліз з адным цягам - Visual Studio Test
У дадзеным выпадку таск настроены для запуску тэстаў уручную з тэст плана
3. Сінхранізацыя тэсткейсаў
Мы ведаем, што Visual Studio дазваляе лінкаваць тэставыя метады да тесткейс у TFS і запускаць іх з тэст-планаў. Для таго каб не рабіць гэта ўручную, а гэтак жа, для таго каб сінхранізаваць змест сцэнарыяў, я напісаў простае кансольнае прыкладанне
Як выкарыстоўваць FeatureSync
Дадаем namespace і лакаль у загаловак feature файла:
#language:en
@Namespace:Application.Autotests
Feature: Log to application
*namespace павінен супадаць з назовам .dll файла ў якім утрымоўвацца тэст-метады
Ствараем пустыя тесткейсы ў TFS і дадаем тэгі з іх id да сцэнароў:
@2124573 @posistive
Scenario: Successful authorization
Given I on authorization page
And I enter:
| Login | Password |
| user | pass |
When I press Login button
Then Browser redirect on Home page
Запускаем FeatureSync:
FeatureSync.exe -f C:FolderWithFeatures -s https://tfs.server.com/collection -t 6ppjfdysk-your-tfs-token-2d7sjwfbj7rzba
У нашым выпадку запуск адбываецца пасля зборкі праекту з тэстамі:
Вынік сінхранізацыі
Сінхранізаваныя крокі SpecFlow сцэнара і прастаўлены статус Automation
4. Настройка тэст-плана
Ствараем тэст-план, дадаем у яго нашы аўтаматызаваныя кейсы, у наладах выбіраемы зборку і рэліз.
5. Запуск тэстаў
Выбіраемы неабходны тэст у тэст-плане і запускаем.
Заключэнне
Плюсы такога канфіга:
- любы тэсціроўшчык можа адкрыць fetaure файл у вэб форме кантролю версій, адрэдагаваць яго і змены набудуць моц адразу ж пасля зборкі
- можна запускаць тэсты ў любы момант па асобнасці
- празрыстая тэставая мадэль - заўсёды ведаем, што робіць тэст які мы запусцілі.
Крыніца: habr.com