2016-12-21 2 views
2

Je suis en train d'exécuter un certain test écrit en utilisant specflow Scenario Outlines où j'ai l'entrée et à la sortie des paramétrées, cela est très bien, et je peux le faire.scénarios de répétition pour différents exemples

Cependant, je voudrais aussi répéter alors tous les tests sur plusieurs navigateurs.

Cela signifie avoir un ensemble de paramètres pour définir les scénarios de test et un autre ensemble à itérer pour toutes les différentes variantes de configuration de l'environnement (type de navigateur)

comme un simple exemple de ce que je suis en train de faire, je une page web qui a des liens sur elle, chaque lien est autorisé en fonction des membres du groupe d'annonces (site web est un intranet une en utilisant l'authentification windows) j'ai donc les essais:

Scenario Outline: Only authorised users can click through links on main page 
Given a user <name> in domain "ad" with password <password> 
And the home page is loaded 
When I click the link <link> 
Then the page has "title" <title> 
Scenarios: 
| name | password | link      | title            | 
| user1 | VMoney123 | "link1" | "You are not authorized to see this section"  | 
| user2 | VMoney123 | "link1" | "Success"  | 
| user2 | VMoney123 | "link2" | "Success" | 

Mais quand j'essaie naïvement d'ajouter Examples pour itérer les saveurs du navigateur:

Scenario Outline: Only authorised users can click through links on main page 
Given a user <name> in domain "ad" with password <password> 
And a <browser> browser 
And the home page is loaded 
When I click the link <link> 
Then the page has "title" <title> 
Examples: 
| browser | 
| "chrome" | 
| "ie"  | 
Scenarios: 
| name | password | link      | title            | 
| name | password | link      | title            | 
| user1 | VMoney123 | "link1" | "You are not authorized to see this section"  | 
| user2 | VMoney123 | "link1" | "Success"  | 
| user2 | VMoney123 | "link2" | "Success" | 

et la construction donne l'erreur:

CS1029 #error: 'Generation error: The example sets must provide the same parameters.' 

Il est évident que je pouvais le faire en ayant 6 scénarios (ou des exemples), mais si je dois étendre ceci à un autre 5 navigateurs qui signifierait un supplément 15 scénarios, il devient rapidement unweildy, sûrement il y a un moyen ...

Répondre