У мережі є багато статей про те, як використовувати 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