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

от автора

В сети есть много статей о том как использовать 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 файл в веб форме контроля версий, отредактировать его и изменения вступят в силу сразу же после сборки
  • можно запускать тесты в любой момент по отдельности
  • прозрачная тестовая модель — всегда знаем, что делает тест который мы запустили.

ссылка на оригинал статьи https://habr.com/ru/post/497730/


Комментарии

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *