Na internetu postoji mnogo članaka o korištenju SpecFlow-a, postavljanju TFS-a za pokretanje testova, ali nijedan ne obuhvata sve aspekte. U ovom članku ću objasniti kako učiniti pokretanje i uređivanje SpecFlow scenarija jednostavnijim za sve.
Ispod saznajte kako dobiti:
- Pokretanje testova iz TFS-a
- Automatsko povezivanje scenarija s testnim slučajevima u TFS-u
- Uvijek ažurirani sadržaj testnih slučajeva u TFS-u
- Mogućnost uređivanja scenarija izravno u sustavu za kontrolu verzija od strane testera

Povijest
Suočili smo se s izazovom automatizacije testiranja aplikacije koristeći BDD pristup. Budući da je osnovni sustav za praćenje zadataka u našoj tvrtki TFS, u mojoj glavi se stvorila slika gdje su koraci SpecFlow scenarija koraci testnih slučajeva u TFS-u, a pokretanje testova odvija se iz testnih planova. U nastavku ću opisati kako sam to realizirao.
Što nam je potrebno:
- Projekt s testovima na SpecFlow-u
- Azure DevOps Server (poznat i kao Team Foundation Server)
- Alat za sinkronizaciju SpecFlow scenarija s testnim slučajevima u TFS-u
Podešavanje
1. Izrada gradnje projekta s testovima
Ovdje je sve jednostavno, gradnja i objava artefakata. O trećem zadatku više detalja kasnije.

2. Izrada izdanja za pokretanje testova
Izrađujemo izdanje s jednim zadatkom — Visual Studio Test

U ovom slučaju zadatak je postavljen za ručno pokretanje testova iz testnog plana

3. Sinkronizacija testnih slučajeva
Znamo da Visual Studio omogućuje povezivanje testnih metoda s testnim slučajevima u TFS-u i njihovo pokretanje iz testnih planova. Kako bismo to izbjegli raditi ručno, kao i za sinkronizaciju sadržaja scenarija, napisao sam jednostavnu konzolnu aplikaciju . Princip je jednostavan — parsiramo feature datoteku i putem TFS API-ja ažuriramo testne slučajeve.
Kako koristiti FeatureSync
Dodajemo namespace i lokalizaciju u zaglavlje feature datoteke:
#language:en
@Namespace:Application.Autotests
Feature: Log to application*namespace mora odgovarati nazivu .dll datoteke u kojoj se nalaze testne metode
Izrađujemo prazne testne slučajeve u TFS-u i dodajemo tagove s njihovim ID-evima scenarijima:

@2124573 @posistive
Scenario: Uspješna autorizacija
Given sam na stranici za autorizaciju
I unosim:
| Login | Lozinka |
| user | pass |
When pritisnem gumb Login
Then Preglednik preusmjerava na početnu stranicuPokrećemo FeatureSync:
FeatureSync.exe -f C:FolderWithFeatures -s https://tfs.server.com/collection -t 6ppjfdysk-your-tfs-token-2d7sjwfbj7rzbaU našem slučaju pokretanje se odvija nakon izrade projekta s testovima:

Rezultat sinkronizacije
Sinkronizirani su koraci SpecFlow scenarija i postavljen je status Automatizacija.


4. Postavljanje testnog plana
Kreiramo testni plan, dodajemo naše automatizirane testne slučajeve, a u postavkama odabiremo verziju i izdanja.


5. Pokretanje testova
Odabiremo potreban test u testnom planu i pokrećemo ga.

Zaključak
Prednosti ovog konfiguracije:
- svaki tester može otvoriti feature datoteku u web sučelju za kontrolu verzija, urediti je, a izmjene će odmah biti primijenjene nakon izrade verzije.
- možete pokretati testove u bilo kojem trenutku, pojedinačno.
- prozirni testni model — uvijek znamo što radi test koji smo pokrenuli.
Izvor: habr.com

