W sieci jest wiele artykułów na temat używania SpecFlow, konfigurowania TFS do uruchamiania testów, ale brak jest jednego, który zawierałby wszystkie aspekty. W artykule opowiem, jak można uczynić uruchamianie i edytowanie scenariuszy SpecFlow wygodnym dla wszystkich.
Pod tym wpisem dowiesz się, jak uzyskać:
- Uruchamianie testów z TFS
- Automatyczne powiązanie scenariuszy z przypadkami testowymi w TFS
- Zawsze aktualna treść przypadków testowych w TFS
- Możliwość edytowania scenariuszy bezpośrednio w systemie kontroli wersji przez testerów

Tło
Staliśmy przed zadaniem zautomatyzowania testowania aplikacji przy użyciu podejścia BDD. Tak jak głównym systemem śledzenia zadań w naszej firmie jest TFS, w mojej głowie powstał obraz, w którym kroki scenariusza SpecFlow to kroki przypadków testowych w TFS, a uruchamianie testów odbywa się z planów testowych. Dalej opisuję, jak to zrealizowałem.
Czego będziemy potrzebować:
- Projektu z testami na SpecFlow
- Azure DevOps Server (znany również jako Team Foundation Server)
- Narzędzie do synchronizacji scenariuszy SpecFlow z przypadkami testowymi w TFS
Konfiguracja
1. Tworzenie kompilacji projektu z testami
Tutaj wszystko jest proste, kompilacja i publikacja artefaktów. O trzecim zadaniu więcej w dalszej części.

2. Tworzenie wydania do uruchamiania testów
Tworzymy wydanie z jednym zadaniem — Visual Studio Test

W tym przypadku zadanie jest skonfigurowane do ręcznego uruchamiania testów z planu testów.

3. Synchronizacja przypadków testowych
Wiemy, że Visual Studio pozwala na powiązanie metod testowych z przypadkami testowymi w TFS i uruchamianie ich z planów testowych. Aby nie robić tego ręcznie, a także w celu synchronizacji treści scenariuszy, napisałem prostą aplikację konsolową . Zasada jest prosta — przetwarzamy plik feature, a za pomocą API TFS aktualizujemy przypadki testowe.
Jak używać FeatureSync
Dodajemy przestrzeń nazw i lokalizację do nagłówka pliku feature:
#language:en
@Namespace:Application.Autotests
Feature: Log to application*przestrzeń nazw musi odpowiadać nazwie pliku .dll, w którym znajdują się metody testowe
Tworzymy puste przypadki testowe w TFS i dodajemy tagi z ich ID do scenariuszy:

@2124573 @pozytywne
Scenariusz: Udana autoryzacja
Załóżmy, że jestem na stronie autoryzacji
I wprowadzam:
| Login | Hasło |
| użytkownik | hasło |
Kiedy naciskam przycisk Zaloguj
Wtedy przeglądarka przekierowuje na stronę głównąUruchamiamy FeatureSync:
FeatureSync.exe -f C:FolderWithFeatures -s https://tfs.server.com/collection -t 6ppjfdysk-twoje-Token-TFS-2d7sjwfbj7rzbaW naszym przypadku uruchomienie następuje po kompilacji projektu z testami:

Wynik synchronizacji
Kroki scenariusza SpecFlow zostały zsynchronizowane i przypisano status Automatyzacja


4. Konfiguracja planu testów
Tworzymy plan testów, dodajemy do niego nasze zautomatyzowane przypadki, w ustawieniach wybieramy wersję i wydanie.


5. Uruchamianie testów
Wybieramy odpowiedni test w planie testów i go uruchamiamy.

Podsumowanie
Zalety takiej konfiguracji:
- każdy tester może otworzyć plik fetaure w webowej wersji kontroli wersji, edytować go, a zmiany wejdą w życie natychmiast po zbudowaniu.
- można uruchamiać testy w dowolnym momencie pojedynczo.
- przejrzysty model testowy — zawsze wiemy, co robi test, który uruchomiliśmy.
Źródło: habr.com

