【问题标题】:How to get next cucumber step after passed if it is failed如果失败,如何在通过后获得下一个黄瓜步骤
【发布时间】:2017-07-06 21:10:06
【问题描述】:

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

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

如果下一个失败,如何在通过后获得下一个黄瓜步骤? 或者如何获取失败步骤的名称?

也许以某种方式计算步位置并采取另一个?

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

【问题讨论】:

    标签: ruby cucumber watir


    【解决方案1】:

    找到了。我们可以使用scenario.exception.backtrace 它将返回一个带有步骤名称的数组。然后从数组中获取需要的元素。 但是,也许还有其他东西可以解决这个失败的步骤?

    【讨论】:

      【解决方案2】:

      根本不调用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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-02-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多