问题
I have a few tests like below:
Scenario Outline: Add two numebrs
Given two numbers <number_1> and <number_2>
When I add them
Then Result is <number_3>
Examples:
|number_1|number_2|number_3|
|2 |3 |5 |
|1 |2 |3 |
Scenario Outline: Update two numebrs
Given two numbers <number_1> and <number_2>
When I update them
Then Result is <number_3>
Examples:
|number_1|number_2|number_3|
|2 |3 |5 |
|1 |2 |3 |
For each test I should add the same table Examples.
Is any way to extract this table to use the same one for all tests?
回答1:
The easiest solution that comes to my mind is combining both scenarios, extracting details to the examples table. So it would look like:
| number_1 | number_2 | operation | result |
You have another possibility.
Scenario: Add two numebrs
Given I have the matrix of numbers
When I add them
Then I would have the resulting vector.
Scenario: Update two numebrs
Given I have the matrix of numbers
When I update them
Then I would have the resulting vector.
Where "the matrix of numbers" and "the resulting vector" go to step defs file.
回答2:
You can use qaf-gherkin where you can move examples in external file and use it with one or more scenario. With qaf your feature file may look like below:
Scenario Outline: Add two numebrs
Given two numbers <number_1> and <number_2>
When I add them
Then Result is <number_3>
Examples::{'datafile':'resources/testdata.txt'}
Scenario Outline: Update two numebrs
Given two numbers <number_1> and <number_2>
When I update them
Then Result is <number_3>
Examples:{'datafile':'resources/testdata.txt'}
And your datafile will look like:
#col.separator=|
number_1|number_2|number_3
2|3|5
1|2|3
Above is example of csv (charter separated values) data provider with | as seperator. You also can use different data providers to provide data from any of excel/xml/json/database.
EDIT: qaf-cucumber has BDD2 support with cucumber that can be used with Cumber 5.
来源:https://stackoverflow.com/questions/26716186/cucumber-scenario-outline-reusing-examples-table