场景挂钩仅对场景大纲有效?
Scenario hooks only valid on scenario outlines?
我们将 Cucumber 和 Selenium 与 Ruby 一起使用。阅读 documentation on hooks 后,我尝试设置一些标签来设置(例如)一些环境变量。
这是一个演示问题的人为示例。
当我像这样建立一个 Before
钩子时:
Before('@tag1', '@tag2') do
puts "in the before hook!"
end
它将在如下定义的场景中生效:
@tag1 @tag2
Scenario Outline: This is a test scenario
Given I run my first step for "<user>"
Then I complete my test
@firstrun
Scenarios:
|user|
|fred|
@secondrun
Scenarios:
|user|
|barney|
..但是,如果我将 @tag1
和 @tag2
移动到各个场景而不是场景大纲,则永远不会调用挂钩,例如:
@secondrun @tag1 @tag2
Scenarios:
|user|
|barney|
是否可以 'hook in' 个别场景,或者只是大纲?
通常情况下,您正在测试的 table 值与场景概述相关联,而不是单独的场景。
例如
ScenarioOutline
Given I am on gmails website
When I login as <user> with <password>
Then I am able to view my primary inbox
Example:
| user | password |
| Fred | xd13#%& |
我们将 Cucumber 和 Selenium 与 Ruby 一起使用。阅读 documentation on hooks 后,我尝试设置一些标签来设置(例如)一些环境变量。
这是一个演示问题的人为示例。
当我像这样建立一个 Before
钩子时:
Before('@tag1', '@tag2') do
puts "in the before hook!"
end
它将在如下定义的场景中生效:
@tag1 @tag2
Scenario Outline: This is a test scenario
Given I run my first step for "<user>"
Then I complete my test
@firstrun
Scenarios:
|user|
|fred|
@secondrun
Scenarios:
|user|
|barney|
..但是,如果我将 @tag1
和 @tag2
移动到各个场景而不是场景大纲,则永远不会调用挂钩,例如:
@secondrun @tag1 @tag2
Scenarios:
|user|
|barney|
是否可以 'hook in' 个别场景,或者只是大纲?
通常情况下,您正在测试的 table 值与场景概述相关联,而不是单独的场景。
例如
ScenarioOutline
Given I am on gmails website
When I login as <user> with <password>
Then I am able to view my primary inbox
Example:
| user | password |
| Fred | xd13#%& |