Зручний 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

Додати коментар або відгук