Wygodne BDD: SpecFlow+TFS

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
    Wygodne BDD: SpecFlow+TFS

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ć:

  1. Projektu z testami na SpecFlow
  2. Azure DevOps Server (znany również jako Team Foundation Server)
  3. 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.

Wygodne BDD: SpecFlow+TFS

2. Tworzenie wydania do uruchamiania testów

Tworzymy wydanie z jednym zadaniem — Visual Studio Test

Wygodne BDD: SpecFlow+TFS

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

Wygodne BDD: SpecFlow+TFS

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ą FeatureSync. 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:

Wygodne BDD: SpecFlow+TFS

@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-2d7sjwfbj7rzba

W naszym przypadku uruchomienie następuje po kompilacji projektu z testami:

Wygodne BDD: SpecFlow+TFS

Wynik synchronizacji

Kroki scenariusza SpecFlow zostały zsynchronizowane i przypisano status Automatyzacja

Wygodne BDD: SpecFlow+TFS

Wygodne BDD: SpecFlow+TFS

4. Konfiguracja planu testów

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

Wygodne BDD: SpecFlow+TFS

Wygodne BDD: SpecFlow+TFS

5. Uruchamianie testów

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

Wygodne BDD: SpecFlow+TFS

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

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster