Зручны BDD: SpecFlow+TFS

У сетцы ёсць шмат артыкулаў аб тым як выкарыстоўваць SpecFlow, як наладжваць TFS для запуску тэстаў, але няма ні адной якая ўтрымлівала б у сабе ўсе аспекты. У артыкуле я раскажу, як можна зрабіць запуск і рэдагаванне сцэнарыяў SpecFlow зручным для ўсіх.

Пад катом вы даведаецеся як атрымаць:

  • Запуск тэстаў з TFS
  • Аўтаматычны лінк сцэнарыяў да тесткейс у TFS
  • Заўсёды актуальны змест тесткейсаў у TFS
  • Магчымасць рэдагаваць сцэнары прама ў сістэме кантролю версій тэсціроўшчыкамі
    Зручны BDD: SpecFlow+TFS

перадгісторыя

Перад намі ўстала задача аўтаматызаваць тэсціраванне прыкладання выкарыстоўваючы BDD падыход. Так як асновай сістэмай таск-трэкінга ў нашай кампаніі з'яўляецца TFS, у маёй галаве склалася карціна, дзе крокі сцэнара SpecFlow - гэта крокі тесткейсаў у TFS, а запуск тэстаў ажыццяўляецца з тэст-планаў. Далей аб тым як я гэта рэалізаваў.

Што нам спатрэбіцца:

  1. Праект з тэстамі на SpecFlow
  2. Azure DevOps Server (aka 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

Дадаем namespace і лакаль у загаловак feature файла:

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

*namespace павінен супадаць з назовам .dll файла ў якім утрымоўвацца тэст-метады

Ствараем пустыя тесткейсы ў TFS і дадаем тэгі з іх id да сцэнароў:

Зручны BDD: SpecFlow+TFS

@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

У нашым выпадку запуск адбываецца пасля зборкі праекту з тэстамі:

Зручны BDD: SpecFlow+TFS

Вынік сінхранізацыі

Сінхранізаваныя крокі SpecFlow сцэнара і прастаўлены статус Automation

Зручны BDD: SpecFlow+TFS

Зручны BDD: SpecFlow+TFS

4. Настройка тэст-плана

Ствараем тэст-план, дадаем у яго нашы аўтаматызаваныя кейсы, у наладах выбіраемы зборку і рэліз.

Зручны BDD: SpecFlow+TFS

Зручны BDD: SpecFlow+TFS

5. Запуск тэстаў

Выбіраемы неабходны тэст у тэст-плане і запускаем.

Зручны BDD: SpecFlow+TFS

Заключэнне

Плюсы такога канфіга:

  • любы тэсціроўшчык можа адкрыць fetaure файл у вэб форме кантролю версій, адрэдагаваць яго і змены набудуць моц адразу ж пасля зборкі
  • можна запускаць тэсты ў любы момант па асобнасці
  • празрыстая тэставая мадэль - заўсёды ведаем, што робіць тэст які мы запусцілі.

Крыніца: habr.com

Дадаць каментар