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

