Ruby 如果失败,如何在通过后获得下一步
我有Ruby 如果失败,如何在通过后获得下一步,ruby,cucumber,watir,Ruby,Cucumber,Watir,我有AfterStephook,它可以给我一个步骤名。但它只给出了通过的步骤的名称 AfterStep do |result, step| puts step.name end 如果下一步失败,如何在通过后获得下一步? 或者如何获取失败步骤的名称 也许可以算出一步的位置,再做一步 有什么想法吗? 我确信这是可能的,因为我们可以在错误日志中看到失败的步骤名称。 找到了。我们可以使用scenario.exception.backtrace 它将返回一个带有步骤名称的数组。然后从数组中获取所需元
AfterStep
hook,它可以给我一个步骤名。但它只给出了通过的步骤的名称
AfterStep do |result, step|
puts step.name
end
如果下一步失败,如何在通过后获得下一步?
或者如何获取失败步骤的名称
也许可以算出一步的位置,再做一步
有什么想法吗?
我确信这是可能的,因为我们可以在错误日志中看到失败的步骤名称。
找到了。我们可以使用
scenario.exception.backtrace
它将返回一个带有步骤名称的数组。然后从数组中获取所需元素。
但是,可能还有其他原因会导致失败的步骤?根本不调用
AfterStep
的原因很简单:它被视为一个简单的步骤,并被列在步骤列表中。因此,只要任何一个步骤失败,场景
就会停止,并且永远不会调用AfterStep
。我认为它是之后使用钩子:
After do |scenario|
if scenario.failed?
puts "Failed: " << scenario.marshal_dump[2].first.source.inspect
end
end
在do |场景之后|
如果scenario.0失败了?
放置“失败”: