Praktisk BDD: SpecFlow+TFS

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

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:

  1. Prosjekt med tester på SpecFlow
  2. Azure DevOps Server (også kjent som Team Foundation Server)
  3. 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.

Praktisk BDD: SpecFlow+TFS

2. Opprettelse av utgivelse for å kjøre tester

Vi oppretter en utgivelse med én oppgave — Visual Studio Test

Praktisk BDD: SpecFlow+TFS

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

Praktisk BDD: SpecFlow+TFS

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

Praktisk BDD: SpecFlow+TFS

@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 startsiden

Kjører FeatureSync:

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

I vårt tilfelle skjer kjøringen etter byggingen av prosjektet med tester:

Praktisk BDD: SpecFlow+TFS

Resultat av synkronisering

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

Praktisk BDD: SpecFlow+TFS

Praktisk BDD: SpecFlow+TFS

4. Konfigurering av testplanen

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

Praktisk BDD: SpecFlow+TFS

Praktisk BDD: SpecFlow+TFS

5. Kjøring av tester

Vi velger den nødvendige testen i testplanen og starter den.

Praktisk BDD: SpecFlow+TFS

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

Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere 🔥 Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere | ProHoster