Bequemes BDD: SpecFlow+TFS

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
    Bequemes BDD: SpecFlow+TFS

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:

  1. Ein Projekt mit Tests auf SpecFlow
  2. Azure DevOps Server (auch bekannt als Team Foundation Server)
  3. 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.

Bequemes BDD: SpecFlow+TFS

2. Erstellung eines Releases zur AusfĂŒhrung der Tests

Wir erstellen ein Release mit einer Aufgabe – Visual Studio Test

Bequemes BDD: SpecFlow+TFS

In diesem Fall ist die Aufgabe so konfiguriert, dass Tests manuell aus dem Testplan ausgefĂŒhrt werden.

Bequemes BDD: SpecFlow+TFS

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, FeatureSync. 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:

Bequemes BDD: SpecFlow+TFS

@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-2d7sjwfbj7rzba

In unserem Fall erfolgt der Start nach dem Build des Testprojekts:

Bequemes BDD: SpecFlow+TFS

Ergebnis der Synchronisierung

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

Bequemes BDD: SpecFlow+TFS

Bequemes BDD: SpecFlow+TFS

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.

Bequemes BDD: SpecFlow+TFS

Bequemes BDD: SpecFlow+TFS

5. Tests starten

Wir wÀhlen den erforderlichen Test im Testplan aus und starten ihn.

Bequemes BDD: SpecFlow+TFS

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

60GB SSD 8Gb DDR4