Im Netz gibt es viele Artikel darĂŒber, wie man SpecFlow nutzt und TFS fĂŒr TestausfĂŒhrungen einrichtet, aber keinen, der alle Aspekte abdeckt. In diesem Artikel erklĂ€re ich, wie Sie das Starten und Bearbeiten von SpecFlow-Szenarien fĂŒr alle Benutzer komfortabel gestalten können.
Unter dem Link erfahren Sie, wie Sie Folgendes erhalten:
- Tests aus TFS starten
- Automatische VerknĂŒpfung von Szenarien mit TestfĂ€llen in TFS
- Immer aktuelle Inhalte der TestfÀlle in TFS
- Möglichkeit, Szenarien direkt im Versionskontrollsystem von Testern zu bearbeiten

Hintergrund
Wir standen vor der Herausforderung, das Testen einer Anwendung mit dem BDD-Ansatz zu automatisieren. Da TFS das zentrale Task-Tracking-System in unserem Unternehmen ist, hatte ich die Vorstellung, dass die Schritte der SpecFlow-Szenarien die Schritte der TestfÀlle in TFS darstellen und die Tests aus den TestplÀnen gestartet werden. Im Folgenden erklÀre ich, wie ich das umgesetzt habe.
Was wir benötigen:
- Ein Projekt mit Tests in SpecFlow
- Azure DevOps Server (auch bekannt als Team Foundation Server)
- Ein Tool zur Synchronisierung von SpecFlow-Szenarien mit TestfÀllen in TFS
Konfiguration
1. Erstellung eines Builds fĂŒr das Testprojekt
Hier ist alles einfach, Build und Veröffentlichung der Artefakte. Ăber die dritte Aufgabe spĂ€ter mehr.

2. Erstellung eines Releases zum Starten der Tests
Wir erstellen ein Release mit einer Aufgabe â Visual Studio Test

In diesem Fall ist die Aufgabe so konfiguriert, dass Tests manuell aus dem Testplan gestartet werden.

3. Synchronisierung der TestfÀlle
Wir wissen, dass Visual Studio es ermöglicht, Testmethoden mit TestfĂ€llen in TFS zu verknĂŒpfen und sie aus TestplĂ€nen auszufĂŒhren. Um dies nicht manuell durchfĂŒhren zu mĂŒssen und um die Inhalte der Szenarien zu synchronisieren, habe ich eine einfache Konsolenanwendung geschrieben. . Das Prinzip ist einfach â wir parsen die Feature-Datei und aktualisieren die TestfĂ€lle ĂŒber die TFS-API.
So verwenden Sie FeatureSync
FĂŒgen Sie den Namespace und die Locale in den Header der Feature-Datei ein:
#language:en
@Namespace:Application.Autotests
Feature: Log to application*Der Namespace muss mit dem Namen der .dll-Datei ĂŒbereinstimmen, in der sich die Test-Methoden befinden
Erstellen Sie leere TestfĂ€lle in TFS und fĂŒgen Sie Tags mit ihren IDs zu den Szenarien hinzu:

@2124573 @positiv
Szenario: Erfolgreiche Authentifizierung
Gegeben sei ich auf der Authentifizierungsseite
Und ich gebe ein:
| Login | Passwort |
| benutzer | passwort |
Wenn ich die SchaltflĂ€che Login drĂŒcke
Dann wird der Browser zur Startseite weitergeleitetStarten Sie FeatureSync:
FeatureSync.exe -f C:OrdnerMitFeatures -s https://tfs.server.com/collection -t 6ppjfdysk-your-tfs-token-2d7sjwfbj7rzbaIn unserem Fall erfolgt der Start nach dem Erstellen des Projekts mit den Tests:

Ergebnis der Synchronisierung
Die Schritte des SpecFlow-Szenarios wurden synchronisiert und der Status Automation wurde festgelegt.


4. Konfiguration des Testplans
Wir erstellen einen Testplan, fĂŒgen unsere automatisierten Tests hinzu und wĂ€hlen in den Einstellungen den Build und die Version aus.


5. Tests starten
Wir wÀhlen den benötigten Test im Testplan aus und starten ihn.

Fazit
Vorteile dieser Konfiguration:
- jeder Tester kann die Feature-Datei im Web-Interface der Versionskontrolle öffnen, bearbeiten und die Ănderungen treten sofort nach dem Build in Kraft.
- Tests können jederzeit einzeln gestartet werden.
- Transparente Testmodell â wir wissen stets, was der Test, den wir gestartet haben, tut.
Quelle: habr.com

