Как стать автором
Обновить

Удобный BDD: SpecFlow+TFS

Время на прочтение2 мин
Количество просмотров2.5K

В сети есть много статей о том как использовать SpecFlow, как настраивать TFS для запуска тестов, но нет ни одной которая содержала бы в себе все аспекты. В статье я расскажу, как можно сделать запуск и редактирование сценариев SpecFlow удобным для всех.


Под катом вы узнаете как получить:


  • Запуск тестов из TFS
  • Автоматический линк сценариев к тесткейсам в TFS
  • Всегда актуальное содержание тесткейсов в TFS
  • Возможность редактировать сценарии прямо в системе контроля версий тестировщиками

Предыстория


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


Что нам потребуется:


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

Настройка


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


Здесь всё просто, сборка и публикация артефактов. О третьем таске подробнее дальше.



2. Создание релиза для запуска тестов


Создаём релиз с одним таском — Visual Studio Test



В данном случае таск настроен для запуска тестов вручную из тест плана



3. Синхронизация тесткейсов


Мы знаем, что Visual Studio позволяет линковать тестовые методы к тесткейсам в TFS и запускасть их из тест-планов. Для того чтобы не делать это вручную, а так же, для того чтобы синхронизировать содержание сценариев, я написал простое консольное приложение FeatureSync. Принцип прост — парсим feature файл, и с помощью API 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 файл в веб форме контроля версий, отредактировать его и изменения вступят в силу сразу же после сборки
  • можно запускать тесты в любой момент по отдельности
  • прозрачная тестовая модель — всегда знаем, что делает тест который мы запустили.
Теги:
Хабы:
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Публикации

Истории

Работа

Ближайшие события