Ci sono molti articoli su Internet su come utilizzare SpecFlow, come configurare TFS per eseguire i test, ma non ce n'è uno che contenga tutti gli aspetti. In questo articolo ti spiegherò come rendere conveniente per tutti l'avvio e la modifica degli script SpecFlow.
Sotto il taglio imparerai come ottenere:
- Esecuzione di test da TFS
- Collegamento automatico degli script ai casi di test in TFS
- Contenuto sempre aggiornato dei casi di test in TFS
- Possibilità di modificare gli script direttamente nel sistema di controllo della versione da parte dei tester
Sfondo
Ci siamo trovati di fronte al compito di automatizzare i test delle applicazioni utilizzando l'approccio BDD. Poiché la base del sistema di tracciamento delle attività nella nostra azienda è TFS, avevo in testa un'immagine in cui i passaggi dello script SpecFlow sono i passaggi dei casi di test in TFS e i test vengono avviati dai piani di test. Di seguito è riportato come l'ho implementato.
Ciò che ci serve:
- Progetto con test su SpecFlow
- Azure DevOps Server (noto anche come Team Foundation Server)
- Uno strumento per sincronizzare gli script SpecFlow con i casi di test in TFS
registrazione
1. Creazione di una build di progetto con test
Qui tutto è semplice, assemblaggio e pubblicazione di artefatti. Maggiori informazioni sul terzo compito più avanti.
2. Creazione di una versione per eseguire i test
Creazione di una versione con un'attività: Visual Studio Test
In questo caso, l'attività è configurata per eseguire i test manualmente dal piano di test
3. Sincronizzazione dei casi di test
Sappiamo che Visual Studio consente di collegare metodi di test a casi di test in TFS ed eseguirli da piani di test. Per non farlo manualmente, e anche per sincronizzare il contenuto degli script, ho scritto una semplice applicazione console
Come utilizzare FeatureSync
Aggiungi spazio dei nomi e impostazioni internazionali all'intestazione del file delle funzionalità:
#language:en
@Namespace:Application.Autotests
Feature: Log to application
*Lo spazio dei nomi deve corrispondere al nome del file .dll che contiene i metodi di test
Creiamo casi di test vuoti in TFS e aggiungiamo tag con il loro ID agli script:
@2124573 @posistive
Scenario: Successful authorization
Given I on authorization page
And I enter:
| Login | Password |
| user | pass |
When I press Login button
Then Browser redirect on Home page
Avvia FeatureSync:
FeatureSync.exe -f C:FolderWithFeatures -s https://tfs.server.com/collection -t 6ppjfdysk-your-tfs-token-2d7sjwfbj7rzba
Nel nostro caso il lancio avviene dopo aver costruito il progetto con i test:
Risultato della sincronizzazione
Le istruzioni di script SpecFlow vengono sincronizzate e lo stato di Automazione viene impostato
4. Impostazione di un piano di test
Creiamo un piano di test, vi aggiungiamo i nostri casi automatizzati, selezioniamo build e rilascio nelle impostazioni
5. Esecuzione di test
Selezionare il test richiesto nel piano di test ed eseguirlo.
conclusione
I vantaggi di questa configurazione:
- qualsiasi tester può aprire il file delle caratteristiche nel modulo web di controllo della versione, modificarlo e le modifiche avranno effetto immediatamente dopo la compilazione
- puoi eseguire i test individualmente in qualsiasi momento
- modello di test trasparente: sappiamo sempre cosa fa il test che abbiamo lanciato.
Fonte: habr.com