Der er mange artikler online om, hvordan man bruger SpecFlow, og hvordan man konfigurerer TFS til at køre tests, men der er ingen, der dækker alle aspekter. I denne artikel vil jeg fortælle, hvordan man kan gøre lanceringen og redigeringen af SpecFlow-scenarier praktisk for alle.
Under overskriften finder du ud af, hvordan du får:
- Kørsel af tests fra TFS
- Automatisk link af scenarier til testcases i TFS
- Altid opdateret indhold af testcases i TFS
- Mulighed for at redigere scenarier direkte i versionsstyringssystemet af testere

Background
Vi stod overfor opgaven at automatisere testningen af applikationen ved hjælp af BDD-tilgangen. Da TFS er det primære task tracking-system i vores virksomhed, fik jeg et billede af, at trinene i SpecFlow-scenarierne er trinene i testcases i TFS, og at tests kører fra testplaner. Her er, hvordan jeg realiserede det.
Hvad vi behøver:
- Projekt med tests i SpecFlow
- Azure DevOps Server (aka Team Foundation Server)
- Værktøj til synkronisering af SpecFlow-scenarier med testcases i TFS
Indstillinger
1. Oprettelse af build af projektet med tests
Her er det simpelt, build og publicering af artefakter. Jeg vil gå i dybden med den tredje opgave senere.

2. Oprettelse af release til at køre tests
Vi opretter en release med én opgave - Visual Studio Test

I dette tilfælde er opgaven indstillet til at køre tests manuelt fra testplanen

3. Synkronisering af testcases
Vi ved, at Visual Studio tillader at linke testmetoder til testcases i TFS og køre dem fra testplaner. For at undgå at gøre dette manuelt og for at synkronisere indholdet af scenarierne, har jeg skrevet et simpelt konsolprogram . Princippet er enkelt - vi parser feature-filens indhold, og ved hjælp af TFS API opdaterer vi testcases.
Sådan bruger du FeatureSync
Tilføj namespace og lokale indstillinger i headeren af feature-filen:
#language:en
@Namespace:Application.Autotests
Feature: Log to application*namespace skal matche navnet på .dll-filen, der indeholder testmetoderne
Opret tomme testcases i TFS og tilføj tags med deres id til scenarierne:

@2124573 @positiv
Scenario: Succesfuld autorisation
Given I on authorization page
And I enter:
| Login | Password |
| user | pass |
When I press Login button
Then Browser redirect on Home pageKør FeatureSync:
FeatureSync.exe -f C:FolderWithFeatures -s https://tfs.server.com/collection -t 6ppjfdysk-your-tfs-token-2d7sjwfbj7rzbaI vores tilfælde sker lanceringen efter bygningen af projektet med tests:

Resultat af synkronisering
Synkroniserede trin fra SpecFlow-scenariet og status for Automatisering er sat


4. Konfiguration af testplanen
Vi opretter en testplan, tilføjer vores automatiserede cases, vælger en build og release i indstillingerne.


5. Kørsel af tests
Vi vælger den nødvendige test i testplanen og starter den.

Konklusion
Fordele ved denne konfiguration:
- Enhver tester kan åbne feature-filen i webversionen af versionskontrol, redigere den, og ændringerne træder i kraft straks efter builden.
- Tests kan køre når som helst individuelt.
- Transparent testmodel — vi ved altid, hvad testen vi har startet, gør.
Kilde: habr.com

