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

