В сети есть много статей о том как использовать SpecFlow, как настраивать TFS для запуска тестов, но нет ни одной которая содержала бы в себе все аспекты. В статье я расскажу, как можно сделать запуск и редактирование сценариев SpecFlow удобным для всех.
Под катом вы узнаете как получить:
- Запуск тестов из TFS
- Автоматический линк сценариев к тесткейсам в TFS
- Всегда актуальное содержание тесткейсов в TFS
- Возможность редактировать сценарии прямо в системе контроля версий тестировщиками
Предыстория
Перед нами встала задача автоматизировать тестирование приложения используя BDD подход. Так как основой системой таск-трекинга в нашей компании является TFS, в моей голове сложилась картина, где шаги сценария SpecFlow — это шаги тесткейсов в TFS, а запуск тестов осуществляется из тест-планов. Далее о том как я это реализовал.
Что нам потребуется:
- Проект с тестами на SpecFlow
- Azure DevOps Server (aka Team Foundation Server)
- Инструмент для синхронизации сценариев SpecFlow с тесткейсами в TFS
Настройка
1. Создание сборки проекта с тестами
Здесь всё просто, сборка и публикация артефактов. О третьем таске подробнее дальше.
2. Создание релиза для запуска тестов
Создаём релиз с одним таском — Visual Studio Test
В данном случае таск настроен для запуска тестов вручную из тест плана
3. Синхронизация тесткейсов
Мы знаем, что Visual Studio позволяет линковать тестовые методы к тесткейсам в 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 файл в веб форме контроля версий, отредактировать его и изменения вступят в силу сразу же после сборки
- можно запускать тесты в любой момент по отдельности
- прозрачная тестовая модель — всегда знаем, что делает тест который мы запустили.
Источник: habr.com