Er zijn veel artikelen online over hoe SpecFlow te gebruiken en TFS in te stellen voor het uitvoeren van tests, maar geen enkele die alle aspecten behandelt. In dit artikel zal ik laten zien hoe je het starten en bewerken van SpecFlow-scenario's gebruiksvriendelijk kunt maken voor iedereen.
Onder de knip leer je hoe je kunt krijgen:
- Tests starten vanuit TFS
- Automatische koppeling van scenario's aan testcases in TFS
- Altijd actuele inhoud van testcases in TFS
- Mogelijkheid om scenario's direct in het versiebeheersysteem door testers te bewerken

Achtergrond
We stonden voor de taak om het testen van de applicatie te automatiseren met behulp van de BDD-aanpak. Aangezien TFS het belangrijkste taakvolgsysteem in ons bedrijf is, kreeg ik het idee dat de stappen van een SpecFlow-scenario de stappen van testcases in TFS zijn, en dat tests vanuit testplannen worden uitgevoerd. Verder zal ik uitleggen hoe ik dit heb gerealiseerd.
Wat hebben we nodig:
- Project met tests in SpecFlow
- Azure DevOps Server (ook bekend als Team Foundation Server)
- Een tool om SpecFlow-scenario's te synchroniseren met testcases in TFS
Instellingen
1. Een build van het project met tests maken
Hier is het eenvoudig, bouwen en publiceren van artefacten. Over de derde taak verderop meer.

2. Een release maken voor het uitvoeren van tests
We creĆ«ren een release met ƩƩn taak ā Visual Studio Test

In dit geval is de taak ingesteld om tests handmatig vanuit het testplan uit te voeren

3. Synchronisatie van testcases
We weten dat Visual Studio het mogelijk maakt om testmethoden aan testcases in TFS te koppelen en ze vanuit testplannen uit te voeren. Om dit niet handmatig te hoeven doen, en om ook de inhoud van scenario's te synchroniseren, heb ik een eenvoudige consoletoepassing geschreven . Het principe is eenvoudig ā we parseren het featurebestand en werken via de TFS API de testcases bij.
Hoe FeatureSync te gebruiken
Voeg de namespace en locatielabel toe aan de header van het featurebestand:
#language:en
@Namespace:Application.Autotests
Feature: Log to application*de namespace moet overeenkomen met de naam van het .dll-bestand waarin de testmethoden zich bevinden
Creƫer lege testcases in TFS en voeg tags met hun id's toe aan de scenario's:

@2124573 @positief
Scenario: Succesvolle autorisatie
Gegeven dat ik op de autorisatiepagina ben
En ik voer in:
| Login | Wachtwoord |
| gebruiker | wachtwoord |
Wanneer ik de knop Aanmelden druk
Dan wordt de browser omgeleid naar de startpaginaVoer FeatureSync uit:
FeatureSync.exe -f C:FolderWithFeatures -s https://tfs.server.com/collection -t 6ppjfdysk-your-tfs-token-2d7sjwfbj7rzbaIn ons geval vindt de uitvoering plaats na de build van het project met tests:

Resultaat van de synchronisatie
De stappen van het SpecFlow-scenario zijn gesynchroniseerd en de status Automation is ingesteld


4. Testplan instellen
We creƫren een testplan, voegen onze geautomatiseerde cases toe, en kiezen in de instellingen de build en release


5. Testen starten
Kies de benodigde test in het testplan en start deze.

Conclusie
Voordelen van deze configuratie:
- elke tester kan het feature-bestand openen in de webvorm van versiebeheer, het bewerken en de wijzigingen worden onmiddellijk na de build van kracht.
- je kunt testen op elk moment afzonderlijk uitvoeren
- transparant testmodel - we weten altijd wat de test die we hebben uitgevoerd doet.
Bron: habr.com

