Sok cikk található az interneten arról, hogyan lehet használni a SpecFlow-t, hogyan kell beállítani a TFS-t a tesztek futtatására, de egy sincs, amely minden aspektust tartalmazna. A cikkben bemutatom, hogyan tehetjük a SpecFlow forgatókönyvek futtatását és szerkesztését mindenki számára kényelmessé.
A bejegyzés alatt megtudhatja, hogyan szerezheti be:
- Tesztelés indítása a TFS-ből
- Forgatókönyvek automatikus összekapcsolása a TFS teszteseteivel
- Mindig aktuális teszteset tartalom a TFS-ben
- A forgatókönyvek közvetlen szerkesztésének lehetősége a verziókezelő rendszerben a tesztelők által

Háttér
Feladatunk az volt, hogy automatizáljuk az alkalmazás tesztelését BDD megközelítéssel. Mivel a cégnél használt fő feladatkövető rendszer a TFS, a fejemben elképzelődött egy kép, ahol a SpecFlow forgatókönyvek lépései a TFS teszteseteinek lépései, és a tesztek futtatása teszttervekből történik. A továbbiakban arról, hogyan valósítottam ezt meg.
Amire szükségünk lesz:
- Projekt tesztekkel SpecFlow-ban
- Azure DevOps Server (más néven Team Foundation Server)
- Eszközt a SpecFlow forgatókönyvek TFS teszteseteivel való szinkronizálásához
Beállítás
1. A projekt tesztjeinek buildelése
Itt minden egyszerű, buildelünk és publikálunk artefaktumokat. A harmadik feladatról részletesebben később.

2. Kiadás létrehozása a tesztek futtatásához
Kiadás létrehozása egy feladattal — Visual Studio Test

Ebben az esetben a feladatot úgy állítottuk be, hogy a teszteket manuálisan futtassuk a teszttervből

3. Tesztesetek szinkronizálása
Tudjuk, hogy a Visual Studio lehetővé teszi a tesztmódszerek összekapcsolását a tesztesetekkel a TFS-ben, és futtathatók a teszttervekből. Annak érdekében, hogy ezt manuálisan ne kelljen megtenni, és hogy szinkronizáljuk a forgatókönyvek tartalmát, írtam egy egyszerű konzolon futó alkalmazást, . Az alapelv egyszerű — a feature fájlt elemezve, a TFS API-jával frissítjük a teszteseteket.
Hogyan használjuk a FeatureSync-et
Hozzáadjuk a namespace-t és a kultúrát a feature fájl fejlécéhez:
#language:en
@Namespace:Application.Autotests
Feature: Log to application*a namespace-nek meg kell egyeznie a .dll fájl nevével, amely a tesztmódszereket tartalmazza
Üres tesztesetek létrehozása a TFS-ben, és a forgatókönyvekhez a tag-ek hozzáadása az azonosítóikkal:

@2124573 @pozitív
Forgatókönyv: Sikeres azonosítás
Adott, hogy az azonosítási oldalon vagyok
És beírom:
| Bejelentkezés | Jelszó |
| felhasználó | jelszó |
Amikor megnyomom a Bejelentkezés gombot
Akkor a böngésző átkonfigurálja a FőoldalraFuttatjuk a FeatureSync-et:
FeatureSync.exe -f C:FolderWithFeatures -s https://tfs.server.com/collection -t 6ppjfdysk-your-tfs-token-2d7sjwfbj7rzbaA mi esetünkben a futtatás a projekt tesztjeinek buildelése után történik:

A szinkronizálás eredménye
A SpecFlow forgatókönyv lépései szinkronizálva lettek, és automatikus státusz került beállításra


4. A tesztterv beállítása
Tesztterv létrehozása, automatizált tesztesetek hozzáadása, a beállításokban az összeállítás és a kiadás kiválasztása


5. Tesztek indítása
Kiválasztjuk a szükséges tesztet a teszttervben és elindítjuk.

Zárás
A konfiguráció előnyei:
- Bármely tesztelő megnyithatja a fetaure fájlt a verziókezelés webes formájában, szerkesztheti, és a módosítások azonnal életbe lépnek az összeállítás után.
- A tesztek bármelyikét külön-külön bármikor lehet indítani.
- Átlátható tesztmodel: mindig tudjuk, mit csinál az a teszt, amelyet elindítottunk.
Forrás: habr.com

