2016-12-21 9 views
2

Я пытаюсь запустить некоторый тест, написанный в specflow, используя Scenario Outlines, где у меня есть параметры ввода и вывода, это прекрасно, и я могу это сделать.Повторить сценарии для разных примеров

Однако я также хотел бы повторить все тесты в нескольких браузерах.

Это означает наличие одного набора параметров для определения тестовых сценариев и другой набор для перебора для всех различных вариантов настройки среды (тип браузера)

как простой пример того, что я пытаюсь сделать, я есть веб-страницу, которая содержит ссылки на него, каждое звено уполномочил на основе членства в группе объявлений (веб-сайт интранет один с помощью окна аутентификации), поэтому у меня есть тесты:

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" | 

Но когда я наивно пытаюсь добавить Examples для повторения браузера:

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" | 

и сборка выдает ошибку:

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

Очевидно, что я мог бы сделать это, имея 6 сценариев (или примеры), но если мне нужно, чтобы расширить это к еще 5 браузеров это будет означать дополнительный 15 сценариев, он быстро становится бесполезным, конечно есть способ ...

ответ

0

Ваша функция недействительна. Огурцы. Посмотрите ссылку на него здесь: https://cucumber.io/docs/reference

Чтобы запустить тот же сценарий для различных браузеров, взгляните на этот пример: https://github.com/techtalk/SpecFlow.Plus.Examples/tree/master/SeleniumWebTest
Он использует SpecFlow + Runner добиться поддержки различных браузеров.


Полное раскрытие информации: Я нахожусь разработчиками SpecFlow и SpecFlow +.