Det er mange artikler på nettet om hvordan man bruker SpecFlow, hvordan man setter opp TFS for å kjøre tester, men ingen som dekker alle aspektene. I denne artikkelen vil jeg fortelle om hvordan man kan gjøre kjøring og redigering av SpecFlow-scenarier praktisk for alle.
Under finner du hvordan du får:
- Kjøre tester fra TFS
- Automatisk kobling av scenarier til testkoder i TFS
- Alltid oppdatert innhold av testkoder i TFS
- Mulighet for å redigere scenarier direkte i systemet for versjonskontroll av testere

Bakgrunn
Vi stod overfor oppgaven å automatisere testing av applikasjonen ved å bruke BDD-tilnærmingen. Siden hovedsystemet for oppgaveoppfølging i vårt selskap er TFS, har jeg fått en forestilling der trinnene i SpecFlow-scenariet er trinnene i testkodene i TFS, og at testene kjøres fra testplaner. Dette er hvordan jeg gjennomførte det.
Hva vi trenger:
- Prosjekt med tester på SpecFlow
- Azure DevOps Server (også kjent som Team Foundation Server)
- Verktøy for synkronisering av SpecFlow-scenarier med testkoder i TFS
Konfigurasjon
1. Opprettelse av bygge for prosjektet med tester
Her er alt enkelt, bygging og publisering av artefakter. Mer om den tredje oppgaven senere.

2. Opprettelse av utgivelse for å kjøre tester
Vi oppretter en utgivelse med én oppgave — Visual Studio Test

I dette tilfellet er oppgaven konfigurert for å kjøre tester manuelt fra testplanen

3. Synkronisering av testkoder
Vi vet at Visual Studio lar deg koble testmetoder til testkoder i TFS og kjøre dem fra testplanene. For å unngå å gjøre dette manuelt, samt for å synkronisere innholdet av scenariene, har jeg skrevet et enkelt konsollprogram . Prinsippet er enkelt — vi parser feature-filen, og bruker TFS API for å oppdatere testkodene.
Hvordan bruke FeatureSync
Legg til namespace og lokalitet i overskriften på feature-filen:
#language:en
@Namespace:Application.Autotests
Feature: Log to application*namespace må samsvare med navnet på .dll-filen der testmetodene finnes
Opprett tomme testkoder i TFS og legg til tagger med deres id til scenariene:

@2124573 @positiv
Scenario: Vellykket autorisasjon
Gitt at jeg er på autorisasjonssiden
Og jeg skriver inn:
| Brukernavn | Passord |
| bruker | passord |
Når jeg trykker på Logg inn-knappen
Da blir nettleseren omdirigert til startsidenKjører FeatureSync:
FeatureSync.exe -f C:FolderWithFeatures -s https://tfs.server.com/collection -t 6ppjfdysk-your-tfs-token-2d7sjwfbj7rzbaI vårt tilfelle skjer kjøringen etter byggingen av prosjektet med tester:

Resultat av synkronisering
Trinnene i SpecFlow-scenariet er synkronisert og statusen for automatisering er oppdatert


4. Konfigurering av testplanen
Vi lager en testplan, legger til våre automatiserte testcaser, og i innstillingene velger vi bygget og versjonen.


5. Kjøring av tester
Vi velger den nødvendige testen i testplanen og starter den.

Konklusjon
Fordelene med denne konfigurasjonen:
- enhver tester kan åpne feature-filen i webgrensesnittet for versjonskontroll, redigere den, og endringene trer i kraft umiddelbart etter byggingen.
- tester kan kjøres når som helst, hver for seg.
- gjennomsiktig testmodell — vi vet alltid hva testen vi har kjørt gjør.
Kilde: habr.com

