BDD intuitivo: SpecFlow+TFS

In rete ci sono molti articoli su come utilizzare SpecFlow e come configurare TFS per eseguire test, ma non ce n'è nessuno che contenga tutti gli aspetti. In questo articolo parlerò di come rendere l'esecuzione e la modifica degli scenari SpecFlow comoda per tutti.

Di seguito scoprirai come ottenere:

  • Esecuzione dei test da TFS
  • Collegamento automatico degli scenari ai test case in TFS
  • Contenuto sempre aggiornato dei test case in TFS
  • Possibilità di modificare gli scenari direttamente nel sistema di controllo versione dagli tester
    BDD intuitivo: SpecFlow+TFS

Contesto

Ci siamo posti l'obiettivo di automatizzare il test dell'applicazione utilizzando l'approccio BDD. Poiché il sistema di task tracking principale nella nostra azienda è TFS, ho immaginato che i passaggi dello scenario SpecFlow siano i passaggi dei test case in TFS e che l'esecuzione dei test avvenga dai piani di test. Di seguito ti spiegherò come ho realizzato tutto ciò.

Cosa ci servirà:

  1. Progetto con test su SpecFlow
  2. Azure DevOps Server (conosciuto anche come Team Foundation Server)
  3. Strumento per sincronizzare gli scenari SpecFlow con i test case in TFS

Impostazione

1. Creazione della build del progetto con i test

Qui è tutto semplice, build e pubblicazione degli artefatti. Maggiori dettagli sul terzo task più avanti.

BDD intuitivo: SpecFlow+TFS

2. Creazione di un rilascio per eseguire i test

Creiamo un rilascio con un'attività — Visual Studio Test

BDD intuitivo: SpecFlow+TFS

In questo caso, l'attività è impostata per eseguire i test manualmente dal piano di test.

BDD intuitivo: SpecFlow+TFS

3. Sincronizzazione dei test case

Sappiamo che Visual Studio consente di collegare i metodi di test ai test case in TFS ed eseguirli dai piani di test. Per non doverlo fare manualmente e per sincronizzare il contenuto degli scenari, ho scritto una semplice applicazione console. FeatureSync. Il principio è semplice: analizziamo il file feature e, tramite l'API TFS, aggiorniamo i test case.

Come utilizzare FeatureSync

Aggiungiamo namespace e locale nell'intestazione del file feature:

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

*il namespace deve corrispondere al nome del file .dll in cui si trovano i metodi di test

Creiamo test case vuoti in TFS e aggiungiamo i tag con i loro id agli scenari:

BDD intuitivo: SpecFlow+TFS

@2124573 @positive
Scenario: Autenticazione riuscita
    Given sono nella pagina di autorizzazione
    E inserisco:
        | Login | Password |
        | utente  | pass     |
    When premo il pulsante Login
    Then il browser reindirizza alla homepage

Eseguiamo FeatureSync:

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

Nel nostro caso, l'esecuzione avviene dopo la build del progetto con i test:

BDD intuitivo: SpecFlow+TFS

Risultato della sincronizzazione

I passaggi dello scenario SpecFlow sono stati sincronizzati e lo stato Automation è stato assegnato.

BDD intuitivo: SpecFlow+TFS

BDD intuitivo: SpecFlow+TFS

4. Configurazione del piano di test

Creiamo un piano di test, aggiungiamo i nostri casi automatizzati, nelle impostazioni scegliamo il build e la release

BDD intuitivo: SpecFlow+TFS

BDD intuitivo: SpecFlow+TFS

5. Esecuzione dei test

Selezioniamo il test necessario nel piano di test e lo avviamo.

BDD intuitivo: SpecFlow+TFS

Conclusione

Vantaggi di questa configurazione:

  • qualsiasi tester può aprire il file feature nella web form di controllo versione, modificarlo e le modifiche avranno effetto immediatamente dopo il build
  • è possibile eseguire i test in qualsiasi momento singolarmente
  • modello di test trasparente — sappiamo sempre cosa sta facendo il test che abbiamo avviato.

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster