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
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:
- Projekt z testami na SpecFlow
- Serwer Azure DevOps (inaczej serwer Team Foundation)
- 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.
2. Stworzenie wydania do uruchomienia testów
Tworzenie wydania za pomocą jednego zadania - Test Visual Studio
W tym przypadku zadanie jest skonfigurowane tak, aby uruchamiać testy ręcznie z poziomu planu testów
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ą
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:
@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:
Wynik synchronizacji
Kroki skryptu SpecFlow są synchronizowane i ustawiany jest stan automatyzacji
4. Ustalenie planu testów
Tworzymy plan testów, dodajemy do niego nasze automatyczne przypadki, w ustawieniach wybieramy kompilację i wydanie
5. Przeprowadzanie testów
Wybierz wymagany test w planie testów i uruchom go.
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