Удобный 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

Добавить комментарий