Feature and scenario outline name in cucumber before hook

谁说我不能喝 提交于 2019-12-10 17:38:43

问题


If I have a simple cucumber feature and scenario, like this (example code is from 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

I know how to get feature and scenario name in before hook:

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

The above code returns:

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

The problem is if the feature has scenario outline:

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   |

When I run the above code I get:

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

How do I get feature and scenario outline name in cucumber before hook?


回答1:


Change before hook to this:

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

Output:

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



回答2:


scenario.gets should give you feature name.



来源:https://stackoverflow.com/questions/11209066/feature-and-scenario-outline-name-in-cucumber-before-hook

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!