Pohodlný BDD: SpecFlow+TFS

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
    Pohodlný BDD: SpecFlow+TFS

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:

  1. Projekt s testy na SpecFlow
  2. Azure DevOps Server (aka Team Foundation Server)
  3. 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.

Pohodlný BDD: SpecFlow+TFS

2. Vytvoření vydání pro spuštění testů

Vytváříme vydání s jedním úkolem — Visual Studio Test

Pohodlný BDD: SpecFlow+TFS

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

Pohodlný BDD: SpecFlow+TFS

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 FeatureSync. 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:

Pohodlný BDD: SpecFlow+TFS

@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ánku

Spouštíme FeatureSync:

FeatureSync.exe -f C:FolderWithFeatures -s https://tfs.server.com/collection -t 6ppjfdysk-your-tfs-token-2d7sjwfbj7rzba

V našem případě se spuštění provádí po sestavení projektu s testy:

Pohodlný BDD: SpecFlow+TFS

Výsledek synchronizace

Byly synchronizovány kroky scénáře SpecFlow a nastaven status Automatizace

Pohodlný BDD: SpecFlow+TFS

Pohodlný BDD: SpecFlow+TFS

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

Pohodlný BDD: SpecFlow+TFS

Pohodlný BDD: SpecFlow+TFS

5. Spuštění testů

Vybereme potřebný test v testovacím plánu a spustíme ho.

Pohodlný BDD: SpecFlow+TFS

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

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster