Praktisk BDD: SpecFlow+TFS

Der er mange artikler online om, hvordan man bruger SpecFlow, og hvordan man konfigurerer TFS til at køre tests, men der er ingen, der dækker alle aspekter. I denne artikel vil jeg fortælle, hvordan man kan gøre lanceringen og redigeringen af SpecFlow-scenarier praktisk for alle.

Under overskriften finder du ud af, hvordan du får:

  • Kørsel af tests fra TFS
  • Automatisk link af scenarier til testcases i TFS
  • Altid opdateret indhold af testcases i TFS
  • Mulighed for at redigere scenarier direkte i versionsstyringssystemet af testere
    Praktisk BDD: SpecFlow+TFS

Background

Vi stod overfor opgaven at automatisere testningen af applikationen ved hjælp af BDD-tilgangen. Da TFS er det primære task tracking-system i vores virksomhed, fik jeg et billede af, at trinene i SpecFlow-scenarierne er trinene i testcases i TFS, og at tests kører fra testplaner. Her er, hvordan jeg realiserede det.

Hvad vi behøver:

  1. Projekt med tests i SpecFlow
  2. Azure DevOps Server (aka Team Foundation Server)
  3. Værktøj til synkronisering af SpecFlow-scenarier med testcases i TFS

Indstillinger

1. Oprettelse af build af projektet med tests

Her er det simpelt, build og publicering af artefakter. Jeg vil gå i dybden med den tredje opgave senere.

Praktisk BDD: SpecFlow+TFS

2. Oprettelse af release til at køre tests

Vi opretter en release med én opgave - Visual Studio Test

Praktisk BDD: SpecFlow+TFS

I dette tilfælde er opgaven indstillet til at køre tests manuelt fra testplanen

Praktisk BDD: SpecFlow+TFS

3. Synkronisering af testcases

Vi ved, at Visual Studio tillader at linke testmetoder til testcases i TFS og køre dem fra testplaner. For at undgå at gøre dette manuelt og for at synkronisere indholdet af scenarierne, har jeg skrevet et simpelt konsolprogram FeatureSync. Princippet er enkelt - vi parser feature-filens indhold, og ved hjælp af TFS API opdaterer vi testcases.

Sådan bruger du FeatureSync

Tilføj namespace og lokale indstillinger i headeren af feature-filen:

#language:en
@Namespace:Application.Autotests
Feature: Log to application

*namespace skal matche navnet på .dll-filen, der indeholder testmetoderne

Opret tomme testcases i TFS og tilføj tags med deres id til scenarierne:

Praktisk BDD: SpecFlow+TFS

@2124573 @positiv
Scenario: Succesfuld autorisation
    Given I on authorization page
    And I enter:
        | Login | Password |
        | user  | pass     |
    When I press Login button
    Then Browser redirect on Home page

Kør FeatureSync:

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

I vores tilfælde sker lanceringen efter bygningen af projektet med tests:

Praktisk BDD: SpecFlow+TFS

Resultat af synkronisering

Synkroniserede trin fra SpecFlow-scenariet og status for Automatisering er sat

Praktisk BDD: SpecFlow+TFS

Praktisk BDD: SpecFlow+TFS

4. Konfiguration af testplanen

Vi opretter en testplan, tilføjer vores automatiserede cases, vælger en build og release i indstillingerne.

Praktisk BDD: SpecFlow+TFS

Praktisk BDD: SpecFlow+TFS

5. Kørsel af tests

Vi vælger den nødvendige test i testplanen og starter den.

Praktisk BDD: SpecFlow+TFS

Konklusion

Fordele ved denne konfiguration:

  • Enhver tester kan åbne feature-filen i webversionen af versionskontrol, redigere den, og ændringerne træder i kraft straks efter builden.
  • Tests kan køre når som helst individuelt.
  • Transparent testmodel — vi ved altid, hvad testen vi har startet, gør.

Kilde: habr.com

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster