Im Internet gibt es viele Artikel darüber, wie man SpecFlow verwendet, wie man TFS für das Testen einrichtet, aber keinen einzigen, der alle Aspekte abdeckt. In diesem Artikel werde ich erläutern, wie man den Start und die Bearbeitung von SpecFlow-Szenarien für alle benutzerfreundlich gestalten kann.
Unter dem Cut erfahren Sie, wie Sie erhalten:
- Tests aus TFS ausführen
- Automatische Verlinkung von Szenarien zu Testfällen in TFS
- Immer aktuelle Inhalte der Testfälle in TFS
- Möglichkeit, Szenarien direkt im Versionskontrollsystem von Testern zu bearbeiten

Vorgeschichte
Wir standen vor der Aufgabe, die Testung der Anwendung mithilfe des BDD-Ansatzes zu automatisieren. Da das Hauptsystem für das Task-Tracking in unserem Unternehmen TFS ist, hatte ich in meinem Kopf das Bild, dass die Schritte der SpecFlow-Szenarien die Schritte der Testfälle in TFS sind und dass Tests aus Testplänen gestartet werden. Weiteres dazu, wie ich das umgesetzt habe.
Was wir benötigen:
- Ein Projekt mit Tests auf SpecFlow
- Azure DevOps Server (auch bekannt als Team Foundation Server)
- Ein Tool zur Synchronisierung von SpecFlow-Szenarien mit Testfällen in TFS
Einstellungen
1. Erstellung eines Builds des Testprojekts
Hier ist alles einfach, Build und Veröffentlichung von Artefakten. Mehr zu der dritten Aufgabe später.

2. Erstellung eines Releases zur Ausführung 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 ausgeführt werden.

3. Synchronisierung der Testfälle
Wir wissen, dass Visual Studio es ermöglicht, Testmethoden mit Testfällen in TFS zu verlinken und diese aus Testplänen zu starten. Um dies nicht manuell tun zu müssen und um die Inhalte der Szenarien zu synchronisieren, habe ich eine einfache Konsolenanwendung geschrieben, . Das Prinzip ist einfach – wir analysieren die Feature-Datei und aktualisieren mithilfe der TFS-API die Testfälle.
Wie man FeatureSync verwendet
Fügen Sie den Namespace und die Locale in die Kopfzeile 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 Testmethoden befinden.
Wir erstellen leere Testfälle in TFS und fügen den Szenarien Tags mit ihren IDs hinzu:

@2124573 @positiv
Szenario: Erfolgreiche Autorisierung
Angenommen, ich bin auf der Autorisierungsseite
Und ich gebe ein:
| Login | Passwort |
| Benutzer | Passwort |
Wenn ich die Login-Schaltfläche drücke
Dann wird der Browser auf die Startseite weitergeleitet.Wir starten FeatureSync:
FeatureSync.exe -f C:FolderWithFeatures -s https://tfs.server.com/collection -t 6ppjfdysk-your-tfs-token-2d7sjwfbj7rzbaIn unserem Fall erfolgt der Start nach dem Build des Testprojekts:

Ergebnis der Synchronisierung
Die Schritte im SpecFlow-Szenario wurden synchronisiert und der Status auf Automation gesetzt.


4. Konfiguration des Testplans
Wir erstellen einen Testplan, fügen unsere automatisierten Testfälle hinzu, wählen in den Einstellungen den Build und das Release aus.


5. Tests starten
Wir wählen den erforderlichen Test im Testplan aus und starten ihn.

Fazit
Vorteile dieser Konfiguration:
- Jeder Tester kann die Feature-Datei in der Web-Versionskontrolle öffnen, sie bearbeiten und die Änderungen treten sofort nach dem Build in Kraft.
- Tests können jederzeit einzeln gestartet werden.
- Ein transparentes Testmodell — wir wissen immer, was der Test, den wir gestartet haben, tut.
Quelle: habr.com

