【发布时间】:2018-10-26 09:34:20
【问题描述】:
我正在尝试访问当前步骤名称以进行场景大纲测试。下面的代码适用于常规场景,但不适用于场景大纲。
AfterStep do |scenario|
#step = scenario.steps.find { |s| s.status == :skipped }
#puts step.keyword + step.name
case scenario
when Cucumber::Ast::Scenario
step = scenario.steps.find { |s| s.status == :skipped }
puts step.keyword + ' ' + step.name
#Works correctly
when Cucumber::Ast::OutlineTable::ExampleRow
# **!!!!Exception below!!!**
step = scenario.scenario_outline.steps.find { |s| s.status == :skipped }
puts step.keyword + ' ' + step.name
end
end
例外:
NoMethodError: undefined method `steps' for #<Cucumber::Ast::OutlineTable::ExampleRow:0x007fe0b8214bc0>
有谁知道如何解决这个问题?或者如果这是可能的?
【问题讨论】:
-
您为什么要这样做?我无法说出你想要达到的目标。 Cucumber 会免费告诉你哪一步失败了。
-
我有一些代码可以用 Step 数据写出干净的文本结果。我想使用后续步骤将该数据以特殊格式写入文件
-
Cucumber 已经写出了哪个步骤运行和哪个失败了,您只需要使用排除 --no-source 从您的格式化程序。我尽量不做任何特别的事情,大多数功能都带有它。您可以尝试在 github.com/cucumber/cucumber/wiki/… 查找自定义格式化程序
-
谢谢@DaveMcNulla 感谢您的帮助。感谢您的参考。我会做更多的研究。