场景挂钩仅对场景大纲有效?

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#%&  |