Det finns mÄnga artiklar pÄ nÀtet om hur man anvÀnder SpecFlow och stÀller in TFS för att köra tester, men ingen som tÀcker alla aspekter. I den hÀr artikeln kommer jag att berÀtta hur man kan göra körningen och redigeringen av SpecFlow-scenarier bekvÀm för alla.
Under rubriken fÄr du veta hur man fÄr:
- Körning av tester frÄn TFS
- Automatisk lÀnkning av scenarier till testfall i TFS
- Alltid aktuellt innehÄll av testfall i TFS
- Möjlighet att redigera scenarier direkt i versionskontrollsystemet av testarna

Bakgrund
Vi stÀlldes inför uppgiften att automatisera testning av applikationen med en BDD-ansats. Eftersom vÄrt företags huvudsakliga uppgiftspÄrningssystem Àr TFS, förestÀllde jag mig en bild dÀr stegen i SpecFlow-scenarier motsvarade stegen i testfallen i TFS, och att tester körs frÄn testplaner. HÀrnÀst kommer jag att beskriva hur jag genomfört detta.
Vad vi behöver:
- Projekt med tester i SpecFlow
- Azure DevOps Server (Àven kÀnd som Team Foundation Server)
- Verktyg för att synkronisera SpecFlow-scenarier med testfall i TFS
InstÀllning
1. Skapa en byggnad av projektet med tester
HÀr Àr det enkelt, byggnad och publicering av artefakter. Mer om den tredje uppgiften senare.

2. Skapa en release för att köra tester
Vi skapar en release med en uppgift â Visual Studio Test

I detta fall Àr uppgiften instÀlld för att köra tester manuellt frÄn testplanen

3. Synkronisering av testfall
Vi vet att Visual Studio lĂ„ter oss lĂ€nka testmetoder till testfall i TFS och köra dem frĂ„n testplaner. För att slippa göra detta manuellt samt för att synkronisera innehĂ„llet i scenarierna, skrev jag en enkel konsolapplikation . Principen Ă€r enkel â vi parserar feature-filen och uppdaterar testfallen med hjĂ€lp av TFS API.
SÄ hÀr anvÀnder du FeatureSync
LĂ€gg till namespace och locale i headern av feature-filen:
#language:en
@Namespace:Application.Autotests
Feature: Log to application*namespace mÄste överensstÀmma med namnet pÄ .dll-filen som innehÄller testmetoderna
Skapa tomma testfall i TFS och lÀgg till taggar med deras ID till scenarierna:

@2124573 @positiv
Scenario: FramgÄngsrik autentisering
Givet att jag Àr pÄ inloggningssidan
Och jag anger:
| Inloggning | Lösenord |
| anvÀndare | lösenord |
NÀr jag trycker pÄ inloggningsknappen
DÄ omdirigerar webblÀsaren till hemsidanKör FeatureSync:
FeatureSync.exe -f C:FolderWithFeatures -s https://tfs.server.com/collection -t 6ppjfdysk-your-tfs-token-2d7sjwfbj7rzbaI vÄrt fall körs detta efter att projektet med tester har byggts:

Resultat av synkroniseringen
Stegen i SpecFlow-scenariot har synkroniserats och statusen Automation har satts.


4. Konfigurera testplanen
Vi skapar en testplan, lÀgger till vÄra automatiserade testfall, vÀljer version och release i instÀllningarna


5. Starta tester
Vi vÀljer nödvÀndigt test i testplanen och startar det.

Slutsats
Fördelar med denna konfiguration:
- varje testare kan öppna feature-filen i webbaserad versionskontroll, redigera den och Àndringarna trÀder i kraft direkt efter bygget
- man kan starta tester nÀr som helst separat
- genomskinlig testmodell â vi vet alltid vad testet vi startade gör.
KĂ€lla: habr.com

