BDD pratique : SpecFlow+TFS

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
    BDD pratique : SpecFlow+TFS

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:

  1. Projet avec tests sur SpecFlow
  2. Azure DevOps Server (alias Team Foundation Server)
  3. 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.

BDD pratique : SpecFlow+TFS

2. Création d'une version pour exécuter des tests

Création d'une version avec une tâche - Visual Studio Test

BDD pratique : SpecFlow+TFS

Dans ce cas, la tâche est configurée pour exécuter des tests manuellement à partir du plan de test

BDD pratique : SpecFlow+TFS

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 FonctionnalitéSync. Le principe est simple : nous analysons le fichier de fonctionnalités et mettons à jour les cas de test à l'aide de l'API TFS.

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 :

BDD pratique : SpecFlow+TFS

@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 :

BDD pratique : SpecFlow+TFS

Résultat de la synchronisation

Les actions de script SpecFlow sont synchronisées et le statut d'automatisation est défini

BDD pratique : SpecFlow+TFS

BDD pratique : SpecFlow+TFS

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

BDD pratique : SpecFlow+TFS

BDD pratique : SpecFlow+TFS

5. Exécution de tests

Sélectionnez le test requis dans le plan de test et exécutez-le.

BDD pratique : SpecFlow+TFS

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

Ajouter un commentaire