Na internetu je mnoho článků o tom, jak používat SpecFlow a jak nakonfigurovat TFS pro spuštění testů, ale žádný, který by pokrýval všechny aspekty. V tomto článku vám ukážu, jak lze spuštění a úpravy scénářů SpecFlow učinit pohodlnými pro všechny.
Pod článkem se dozvíte, jak získat:
- Spouštění testů z TFS
- Automatické propojení scénářů s testovacími případy v TFS
- Vždy aktuální obsah testovacích případů v TFS
- Možnost upravovat scénáře přímo v systému správy verzí testery

Pozadí
Stanovili jsme si úkol automatizovat testování aplikace pomocí přístupu BDD. Protože základním systémem sledování úloh v naší firmě je TFS, v mé hlavě se vytvořil obraz, kde kroky scénáře SpecFlow jsou kroky testovacích případů v TFS a spuštění testů se provádí z testovacích plánů. Níže popíšu, jak jsem to realizoval.
Co budeme potřebovat:
- Projekt s testy na SpecFlow
- Azure DevOps Server (aka Team Foundation Server)
- Nástroj pro synchronizaci scénářů SpecFlow s testovacími případy v TFS
Nastavení
1. Vytvoření sestavení projektu s testy
Tady je to jednoduché, sestavení a publikace artefaktů. O třetím úkolu více podrobností později.

2. Vytvoření vydání pro spuštění testů
Vytváříme vydání s jedním úkolem — Visual Studio Test

V tomto případě je úkol nastaven pro manuální spuštění testů z testovacího plánu

3. Synchronizace testovacích případů
Víme, že Visual Studio umožňuje propojovat testovací metody s testovacími případy v TFS a spouštět je z testovacích plánů. Abychom to nemuseli dělat ručně a také pro synchronizaci obsahu scénářů, napsal jsem jednoduchou konzolovou aplikaci . Princip je jednoduchý — parsujeme soubor feature a pomocí API TFS aktualizujeme testovací případy.
Jak používat FeatureSync
Přidáváme namespace a lokalizaci do hlavičky souboru feature:
#language:en
@Namespace:Application.Autotests
Feature: Log to application*namespace musí odpovídat názvu .dll souboru, ve kterém se nacházejí testovací metody
Vytváříme prázdné testovací případy v TFS a přidáváme štítky s jejich id k scénářům:

@2124573 @posistive
Scenario: Úspěšná autorizace
Given se nacházím na stránce autorizace
And zadávám:
| Přihlášení | Heslo |
| uživatel | heslo |
When stisknu tlačítko Přihlásit
Then prohlížeč přesměruje na domovskou stránkuSpouštíme FeatureSync:
FeatureSync.exe -f C:FolderWithFeatures -s https://tfs.server.com/collection -t 6ppjfdysk-your-tfs-token-2d7sjwfbj7rzbaV našem případě se spuštění provádí po sestavení projektu s testy:

Výsledek synchronizace
Byly synchronizovány kroky scénáře SpecFlow a nastaven status Automatizace


4. Nastavení testovacího plánu
Vytváříme testovací plán, přidáváme do něj naše automatizované případy, v nastavení vybíráme sestavení a verzi


5. Spuštění testů
Vybereme potřebný test v testovacím plánu a spustíme ho.

Závěr
Výhody takové konfigurace:
- jakýkoli tester může otevřít feature soubor ve webovém formuláři správy verzí, upravit ho a změny vstoupí v platnost ihned po sestavení
- testy lze spouštět kdykoli jednotlivě
- transparentní testovací model — vždy víme, co dělá test, který jsme spustili.
Zdroj: habr.com

