Na mreži postoji mnogo članaka o tome kako koristiti SpecFlow, kako postaviti TFS za pokretanje testova, ali nema niti jednog koji obuhvata sve aspekte. U ovom članku ću objasniti kako učiniti pokretanje i uređivanje SpecFlow scenarija jednostavnim za sve.
Ispod saznajte kako dobiti:
- Pokretanje testova iz TFS-a
- Automatsko povezivanje scenarija s test slučajevima u TFS-u
- Uvek ažurirani sadržaj test slučajeva u TFS-u
- Mogućnost uređivanja scenarija direktno u sistemu kontrole verzija od strane testera

Pozadina
Stajali smo pred zadatkom automatizacije testiranja aplikacije koristeći BDD pristup. Kako je osnovni sistem za praćenje zadataka u našoj firmi TFS, formirala se slika u mojoj glavi, gde su koraci scenarija SpecFlow koraci test slučajeva u TFS-u, a pokretanje testova vrši se iz test planova. Dalje ću opisati kako sam to realizovao.
Šta će nam biti potrebno:
- Projekat sa testovima na SpecFlow-u
- Azure DevOps Server (poznat i kao Team Foundation Server)
- Alat za sinhronizaciju scenarija SpecFlow sa test slučajevima u TFS-u
Setup
1. Kreiranje gradnje projekta sa testovima
Ovdje je sve jednostavno, gradnja i objava artefakata. O trećem zadatku više u nastavku.

2. Kreiranje izdanja za pokretanje testova
Kreiramo izdanje sa jednim zadatkom — Visual Studio Test

U ovom slučaju je zadatak podešen za pokretanje testova ručno iz test plana

3. Sinhronizacija test slučajeva
Znamo da Visual Studio omogućava povezivanje test metoda s test slučajevima u TFS-u i pokretanje ih iz test planova. Da ne bismo ručno radili ovo, kao i da bismo sinhronizovali sadržaj scenarija, napisao sam jednostavnu konzolnu aplikaciju . Način rada je jednostavan — parsiramo feature datoteku i uz pomoć TFS API-a ažuriramo test slučajeve.
Kako koristiti FeatureSync
Dodajte namespace i lokalitet u zaglavlje feature datoteke:
#language:en
@Namespace:Application.Autotests
Feature: Log to application*namespace mora odgovarati nazivu .dll datoteke koja sadrži test metode
Kreiramo prazne test slučajeve u TFS-u i dodajemo tagove s njihovim id-jevima u scenarije:

@2124573 @pozitivno
Scenarij: Uspešna autorizacija
Pretpostavimo da sam na stranici za autorizaciju
I unosim:
| Login | Lozinka |
| korisnik | lozinka |
Kada pritisnem dugme Prijava
Onda pretraživač preusmerava na poletnu 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 dešava nakon gradnje projekta sa testovima:

Rezultat sinhronizacije
Sinhronizovani su koraci SpecFlow scenarija i dodeljen status Automatizovano


4. Podešavanje test plana
Ustvarjamo testni načrt, dodajamo naše avtomatizirane primere in v nastavitvah izberemo številko in izdajo.


5. Zagon testov
Izberemo potreben test v testnem načrtu in ga zaženemo.

Zaključek
Prednosti te konfiguracije:
- katerikoli tester lahko odpre datoteko funkcionalnosti v spletni obliki nadzora različic, jo uredi, spremembe pa se takoj uveljavijo po sestavljanju.
- testi se lahko izvajajo kadarkoli posamično.
- prosojna testna metoda — vedno vemo, kaj počne test, ki smo ga zagnali.
Izvor: habr.com

