Benutzerfreundliches BDD: SpecFlow+TFS

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

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:

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

Benutzerfreundliches BDD: SpecFlow+TFS

2. Erstellung eines Releases zum Starten der Tests

Wir erstellen ein Release mit einer Aufgabe – Visual Studio Test

Benutzerfreundliches BDD: SpecFlow+TFS

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

Benutzerfreundliches BDD: SpecFlow+TFS

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

Benutzerfreundliches BDD: SpecFlow+TFS

@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 weitergeleitet

Starten Sie FeatureSync:

FeatureSync.exe -f C:OrdnerMitFeatures -s https://tfs.server.com/collection -t 6ppjfdysk-your-tfs-token-2d7sjwfbj7rzba

In unserem Fall erfolgt der Start nach dem Erstellen des Projekts mit den Tests:

Benutzerfreundliches BDD: SpecFlow+TFS

Ergebnis der Synchronisierung

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

Benutzerfreundliches BDD: SpecFlow+TFS

Benutzerfreundliches BDD: SpecFlow+TFS

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.

Benutzerfreundliches BDD: SpecFlow+TFS

Benutzerfreundliches BDD: SpecFlow+TFS

5. Tests starten

Wir wählen den benötigten Test im Testplan aus und starten ihn.

Benutzerfreundliches BDD: SpecFlow+TFS

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

Erwerben Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster