如果失败,如何通过下一个黄瓜步骤

时间:2017-07-06 11:32:42

标签: ruby cucumber watir

我有AfterStep个钩子,它可以给我一个步骤名称。但它只给出了通过步骤的名称。

AfterStep do |result, step|
  puts step.name
end

如果接下来失败,如何获得下一个黄瓜步骤? 或者如何获得失败步骤的名称?

也许以某种方式计算步骤位置并再拿一个?

有什么想法吗? 我确信这是可能的,因为我们可以在错误日志中看到失败的步骤名称。 enter image description here

2 个答案:

答案 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元素。 但是,也许还有其他东西可以给这个失败的步骤?