Wygodny BDD: SpecFlow+TFS

W Internecie jest wiele artykułów na temat korzystania ze SpecFlow, konfiguracji TFS do uruchamiania testów, ale żaden nie zawiera wszystkich aspektów. W tym artykule opowiem Ci, jak sprawić, by uruchamianie i edytowanie skryptów SpecFlow było wygodne dla każdego.

Poniżej cięcia dowiesz się jak zdobyć:

  • Uruchamianie testów z TFS
  • Automatyczne łączenie skryptów z przypadkami testowymi w TFS
  • Zawsze aktualna zawartość przypadków testowych w TFS
  • Możliwość edycji skryptów bezpośrednio w systemie kontroli wersji przez testerów
    Wygodny BDD: SpecFlow+TFS

prehistoria

Stanęliśmy przed zadaniem automatyzacji testów aplikacji z wykorzystaniem podejścia BDD. Ponieważ podstawą systemu śledzenia zadań w naszej firmie jest TFS, miałem w głowie obraz, w którym kroki skryptu SpecFlow są krokami przypadków testowych w TFS, a testy uruchamiane są z planów testów. Poniżej jest jak to zaimplementowałem.

Czego potrzebujemy:

  1. Projekt z testami na SpecFlow
  2. Serwer Azure DevOps (inaczej serwer Team Foundation)
  3. Narzędzie do synchronizacji skryptów SpecFlow z przypadkami testowymi w TFS

regulacja

1. Tworzenie kompilacji projektu z testami

Tutaj wszystko jest proste, montaż i publikacja artefaktów. Więcej o trzecim zadaniu później.

Wygodny BDD: SpecFlow+TFS

2. Stworzenie wydania do uruchomienia testów

Tworzenie wydania za pomocą jednego zadania - Test Visual Studio

Wygodny BDD: SpecFlow+TFS

W tym przypadku zadanie jest skonfigurowane tak, aby uruchamiać testy ręcznie z poziomu planu testów

Wygodny BDD: SpecFlow+TFS

3. Synchronizacja przypadków testowych

Wiemy, że Visual Studio umożliwia łączenie metod testowych z przypadkami testowymi w TFS i uruchamianie ich z planów testów. Aby nie robić tego ręcznie, a także aby zsynchronizować zawartość skryptów napisałem prostą aplikację konsolową Synchronizacja funkcji. Zasada jest prosta – analizujemy plik funkcji i aktualizujemy przypadki testowe za pomocą API TFS.

Jak korzystać z FeatureSync

Dodaj przestrzeń nazw i ustawienia regionalne do nagłówka pliku funkcji:

#language:en
@Namespace:Application.Autotests
Feature: Log to application

*przestrzeń nazw musi odpowiadać nazwie pliku .dll zawierającego metody testowe

Tworzymy puste przypadki testowe w TFS i dodajemy do skryptów tagi z ich identyfikatorem:

Wygodny BDD: SpecFlow+TFS

@2124573 @posistive
Scenario: Successful authorization
    Given I on authorization page
    And I enter:
        | Login | Password |
        | user  | pass     |
    When I press Login button
    Then Browser redirect on Home page

Uruchom FeatureSync:

FeatureSync.exe -f C:FolderWithFeatures -s https://tfs.server.com/collection -t 6ppjfdysk-your-tfs-token-2d7sjwfbj7rzba

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

Wygodny BDD: SpecFlow+TFS

Wynik synchronizacji

Kroki skryptu SpecFlow są synchronizowane i ustawiany jest stan automatyzacji

Wygodny BDD: SpecFlow+TFS

Wygodny BDD: SpecFlow+TFS

4. Ustalenie planu testów

Tworzymy plan testów, dodajemy do niego nasze automatyczne przypadki, w ustawieniach wybieramy kompilację i wydanie

Wygodny BDD: SpecFlow+TFS

Wygodny BDD: SpecFlow+TFS

5. Przeprowadzanie testów

Wybierz wymagany test w planie testów i uruchom go.

Wygodny BDD: SpecFlow+TFS

wniosek

Zalety tej konfiguracji:

  • każdy tester może otworzyć plik fetaure w formularzu internetowym kontroli wersji, edytować go, a zmiany zaczną obowiązywać natychmiast po kompilacji
  • w dowolnym momencie możesz przeprowadzić testy indywidualnie
  • przejrzysty model testu – zawsze wiemy, co robi uruchomiony przez nas test.

Źródło: www.habr.com

Dodaj komentarz