钩前黄瓜中的特征和场景轮廓名称

时间:2012-06-26 14:01:48

标签: cucumber

如果我有一个简单的黄瓜功能场景,就像这样(示例代码来自cucumber wiki):

Feature: Eating cucumbers

Scenario: eat 5 out of 12
  Given there are 12 cucumbers
  When I eat 5 cucumbers
  Then I should have 7 cucumbers

我知道如何在before钩子中获取功能场景名称:

Before do |scenario|
  p [scenario.feature.name, scenario.name]
end

上面的代码返回:

["Eating cucumbers", "eat 5 out of 12"]

问题是功能是否有场景大纲

Scenario Outline: eating
  Given there are <start> cucumbers
  When I eat <eat> cucumbers
  Then I should have <left> cucumbers

  Examples:
    | start | eat | left |
    |  12   |  5  |  7   |

当我运行上面的代码时,我得到:

undefined method `feature' for #<Cucumber::Ast::OutlineTable::ExampleRow:0x007fb0f94a8240> (NoMethodError)

如何在黄瓜before挂钩中获取功能方案大纲名称?

2 个答案:

答案 0 :(得分:6)

before挂钩更改为:

Before do |scenario|
  p [scenario.scenario_outline.feature.name, scenario.scenario_outline.name, scenario.name]
end

输出:

["Eating cucumbers", "eating", "| 12 | 5 | 7 |"]

答案 1 :(得分:0)

scenario.gets应该为您提供功能名称。