BDD pratique : SpecFlow+TFS

Il existe de nombreux articles sur l'utilisation de SpecFlow, sur la configuration de TFS pour exécuter des tests, mais aucun ne couvre tous les aspects. Dans cet article, je vais expliquer comment rendre le lancement et l'édition des scénarios SpecFlow accessibles à tous.

Sous ce titre, vous découvrirez comment obtenir :

  • Lancement des tests depuis TFS
  • Lien automatique des scénarios aux cas de test dans TFS
  • Contenu toujours à jour des cas de test dans TFS
  • Possibilité d'éditer les scénarios directement dans le système de contrôle de version par les testeurs
    BDD pratique : SpecFlow+TFS

Contexte

Nous avons pour mission d'automatiser les tests de l'application en utilisant l'approche BDD. Puisque notre système principal de suivi des tâches dans notre entreprise est TFS, j'ai imaginé une situation où les étapes des scénarios SpecFlow correspondent aux étapes des cas de test dans TFS, et où les tests sont exécutés à partir des plans de test. Voici comment j'ai réalisé cela.

Ce dont nous aurons besoin :

  1. Un projet avec des tests sur SpecFlow
  2. Azure DevOps Server (alias Team Foundation Server)
  3. Un outil pour synchroniser les scénarios SpecFlow avec les cas de test dans TFS

Configuration

1. Création d'une build du projet avec des tests

Ici, tout est simple, création et publication des artefacts. Je détaillerai la troisième tâche plus loin.

BDD pratique : SpecFlow+TFS

2. Création d'une release pour exécuter les tests

Nous créons une release avec une seule tâche — Visual Studio Test

BDD pratique : SpecFlow+TFS

Dans ce cas, la tâche est configurée pour lancer les tests manuellement depuis le plan de test

BDD pratique : SpecFlow+TFS

3. Synchronisation des cas de test

Nous savons que Visual Studio permet de lier les méthodes de test aux cas de test dans TFS et de les exécuter à partir des plans de test. Afin de ne pas le faire manuellement, et pour synchroniser le contenu des scénarios, j'ai écrit une simple application console FeatureSync. Le principe est simple : nous analysons le fichier feature, et grâce à l'API TFS, nous mettons à jour les cas de test.

Comment utiliser FeatureSync

Ajoutez le namespace et la locale dans l'en-tête du fichier feature :

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

*le namespace doit correspondre au nom du fichier .dll contenant les méthodes de test

Nous créons des cas de test vides dans TFS et ajoutons des balises avec leurs id aux scénarios :

BDD pratique : SpecFlow+TFS

@2124573 @positive
Scenario: Autorisation réussie
    Given I on authorization page
    And I enter:
        | Login | Password |
        | user  | pass     |
    When I press Login button
    Then Browser redirect on Home page

Lançons FeatureSync :

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

Dans notre cas, le lancement se fait après la construction du projet avec des tests :

BDD pratique : SpecFlow+TFS

Résultat de la synchronisation

Les étapes du scénario SpecFlow ont été synchronisées et le statut Automation a été défini.

BDD pratique : SpecFlow+TFS

BDD pratique : SpecFlow+TFS

4. Configuration du plan de test

Nous créons un plan de test, ajoutons nos cas automatisés, sélectionnons la version et la build dans les paramètres.

BDD pratique : SpecFlow+TFS

BDD pratique : SpecFlow+TFS

5. Lancement des tests

Nous choisissons le test nécessaire dans le plan de test et le lançons.

BDD pratique : SpecFlow+TFS

Conclusion

Avantages de cette configuration :

  • tout testeur peut ouvrir le fichier feature dans l'interface web de gestion des versions, le modifier et les modifications prendront effet immédiatement après la build.
  • il est possible de lancer les tests séparément à tout moment.
  • modèle de test transparent — nous savons toujours ce que fait le test que nous avons lancé.

Source : habr.com

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster