Există multe articole pe internet despre cum să folosești SpecFlow, cum să configurezi TFS pentru a rula teste, dar nu există niciunul care să conțină toate aspectele. În acest articol, voi explica cum să faci rularea și editarea scenariilor SpecFlow mai convenabilă pentru toți.
Sub acest titlu veți afla cum să obțineți:
- Rularea testelor din TFS
- Linkuri automate între scenarii și testele din TFS
- Conținut întotdeauna actualizat al testurilor din TFS
- Posibilitatea de a edita scenarii direct în sistemul de control al versiunilor de către testeri

Povestea
Am avut sarcina de a automatiza testarea aplicației folosind abordarea BDD. Deoarece sistemul de management al sarcinilor din compania noastră este TFS, mi-am imaginat o imagine în care pașii scenariului SpecFlow sunt pașii testelor din TFS, iar rularea testelor se face din planurile de testare. Mai departe voi explica cum am realizat acest lucru.
Ce ne va fi necesar:
- Un proiect cu teste pe SpecFlow
- Azure DevOps Server (cunoscut și ca Team Foundation Server)
- Un instrument pentru sincronizarea scenariilor SpecFlow cu testele din TFS
Configurare
1. Crearea unei construcții a proiectului cu teste
Aici totul este simplu, construirea și publicarea artefactelor. Despre a treia sarcină voi vorbi mai în detaliu mai târziu.

2. Crearea unei versiuni pentru rularea testelor
Creăm o versiune cu o singură sarcină - Visual Studio Test

În acest caz, sarcina este configurată pentru a rula teste manual din planul de testare

3. Sincronizarea testelor
Știm că Visual Studio permite linkarea metodelor de testare cu testele din TFS și rularea lor din planurile de testare. Pentru a nu face asta manual, și de asemenea pentru a sincroniza conținutul scenariilor, am scris o aplicație simplă de consolă . Principiul este simplu: analizăm fișierul feature și folosind API-ul TFS actualizăm testele.
Cum să folosești FeatureSync
Adăugați un namespace și localizare în antetul fișierului feature:
#language:en
@Namespace:Application.Autotests
Feature: Log to application*namespace-ul trebuie să corespundă cu numele fișierului .dll în care se află metodele de testare
Creăm teste goale în TFS și adăugăm etichete cu ID-urile lor la scenarii:

@2124573 @positiv
Scenariul: Autorizare reușită
Dat fiind că mă aflu pe pagina de autorizare
Și introduc:
| Login | Parolă |
| user | pass |
Când apăs butonul Login
Atunci browserul mă redirecționează pe pagina PrincipalăRulăm FeatureSync:
FeatureSync.exe -f C:FolderWithFeatures -s https://tfs.server.com/collection -t 6ppjfdysk-tokenul-tfs-2d7sjwfbj7rzbaÎn cazul nostru, rularea are loc după construirea proiectului cu teste:

Rezultatul sincronizării
Pașii scenariului SpecFlow au fost sincronizați și statutul de automatizare a fost setat


4. Configurarea planului de testare
Creăm un plan de testare, adăugăm cazurile noastre automatizate, în setări alegem versiunea și build-ul


5. Rularea testelor
Selectăm testul necesar din planul de testare și îl lansăm.

Concluzie
Avantajele acestei configurații:
- orice testare poate deschide fișierul de caracteristici în forma web de control al versiunilor, îl poate edita și modificările vor avea efect imediat după build
- poți lansa testele în orice moment, individual
- modelul de testare transparent — știm întotdeauna ce face testul pe care l-am lansat.
Sursa: habr.com

