我有AfterStep
个钩子,它可以给我一个步骤名称。但它只给出了通过步骤的名称。
AfterStep do |result, step|
puts step.name
end
如果接下来失败,如何获得下一个黄瓜步骤? 或者如何获得失败步骤的名称?
也许以某种方式计算步骤位置并再拿一个?
答案 0 :(得分:1)
根本没有调用AfterStep
的原因很简单:它被视为一个简单的步骤,并且是步骤列表的just appended。因此,只要任何步骤失败,scenario
就会停止,AfterStep
永远不会被调用。我认为这是cucumber-ruby
中的错误。
作为一种解决方法,可以使用After
hook:
After do |scenario|
if scenario.failed?
puts "Failed: " << scenario.marshal_dump[2].first.source.inspect
end
end
答案 1 :(得分:0)
实测值。我们可以使用scenario.exception.backtrace
它将返回一个带有步骤名称的数组。然后从阵列中获取need元素。
但是,也许还有其他东西可以给这个失败的步骤?