Il existe de nombreux articles sur Internet expliquant comment utiliser SpecFlow, comment configurer TFS pour exécuter des tests, mais aucun ne contient tous les aspects. Dans cet article, je vais vous expliquer comment rendre le lancement et la modification de scripts SpecFlow pratiques pour tout le monde.
Sous la coupe, vous apprendrez comment obtenir :
- Exécuter des tests depuis TFS
- Liaison automatique des scripts aux cas de test dans TFS
- Contenu toujours à jour des cas de test dans TFS
- Possibilité d'éditer des scripts directement dans le système de contrôle de version par les testeurs
Préhistoire
Nous avons été confrontés à la tâche d'automatiser les tests d'applications en utilisant l'approche BDD. Étant donné que la base du système de suivi des tâches de notre entreprise est TFS, j'avais en tête une image où les étapes du script SpecFlow sont les étapes des cas de test dans TFS et les tests sont lancés à partir des plans de test. Voici comment je l'ai implémenté.
Ce dont nous avons besoin:
- Projet avec tests sur SpecFlow
- Azure DevOps Server (alias Team Foundation Server)
- Un outil pour synchroniser les scripts SpecFlow avec les cas de test dans TFS
réglage
1. Création d'une build de projet avec des tests
Tout est simple ici, assemblage et publication des artefacts. Nous en saurons davantage sur la troisième tâche plus tard.
2. Création d'une version pour exécuter des tests
Création d'une version avec une tâche - Visual Studio Test
Dans ce cas, la tâche est configurée pour exécuter des tests manuellement à partir du plan de test
3. Synchronisation des cas de tests
Nous savons que Visual Studio vous permet de lier des méthodes de test à des cas de test dans TFS et de les exécuter à partir de plans de test. Afin de ne pas le faire manuellement, et aussi afin de synchroniser le contenu des scripts, j'ai écrit une simple application console
Comment utiliser FeatureSync
Ajoutez un espace de noms et des paramètres régionaux à l'en-tête du fichier de fonctionnalités :
#language:en
@Namespace:Application.Autotests
Feature: Log to application
*l'espace de noms doit correspondre au nom du fichier .dll qui contient les méthodes de test
Nous créons des cas de test vides dans TFS et ajoutons des balises avec leur identifiant aux scripts :
@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
Lancez FeatureSync :
FeatureSync.exe -f C:FolderWithFeatures -s https://tfs.server.com/collection -t 6ppjfdysk-your-tfs-token-2d7sjwfbj7rzba
Dans notre cas, le lancement intervient après construction du projet avec des tests :
Résultat de la synchronisation
Les actions de script SpecFlow sont synchronisées et le statut d'automatisation est défini
4. Mise en place d'un plan de test
Nous créons un plan de test, y ajoutons nos cas automatisés, sélectionnons la construction et la publication dans les paramètres
5. Exécution de tests
Sélectionnez le test requis dans le plan de test et exécutez-le.
Conclusion
Les avantages de cette config :
- n'importe quel testeur peut ouvrir le fichier fetaure dans le formulaire Web de contrôle de version, le modifier et les modifications prendront effet immédiatement après la construction.
- vous pouvez exécuter des tests individuellement à tout moment
- modèle de test transparent - nous savons toujours ce que fait le test que nous avons lancé.
Source: habr.com