【问题标题】:calabash-cucumber :How to force fail calabash step if the scenario takes long time or might be got hanged葫芦黄瓜:如果场景需要很长时间或可能被绞死,如何强制葫芦步骤失败
【发布时间】:2016-01-27 20:24:34
【问题描述】:

当测试运行很长时间时,Calabash 测试在场景之间挂起,如果没有满足任何条件,我预计场景会超时。但是这也没有发生,因此测试继续进行下一个场景。

有没有一种方法可以在我的代码中实现来持续监控每个场景的运行时间,以便如果它需要比预期更长的时间,它会强制场景失败,然后下一个场景正常运行?

非常感谢任何帮助!

-网格

【问题讨论】:

    标签: cucumber calabash calabash-ios


    【解决方案1】:

    你可以使用环绕钩子,这个会在 10 秒后超时:

    Around do |scenario, block|
      Timeout.timeout(10) do
        block.call
      end
    end
    

    【讨论】:

    • 你试过这个吗?因为这个 Around 钩子在所有情况下都没有给我相同的结果。有时它会超时,有时不会。
    • 嗯测试有后台步骤吗? makandracards.com/makandra/…
    • 我在使用 Around 钩子和葫芦时得到的结果不一致。我将问题追溯到黄瓜本身。在查看了相关问题后,我得出结论,在黄瓜 2.0 中将重新设计 hooks。我们正在评估 calabash + cucumber 2.0 的兼容性。请不要问我们什么时候会添加黄瓜 2.0 支持。这将取决于黄瓜 2.0 何时发布;我们无法控制的事情。
    【解决方案2】:

    您可以使用此语法强制步骤失败

    语法

    fail(msg = 'Error. Check log for details.', options = {:prefix => nil, :name => nil, :label => nil})
    

    示例

    fail(msg ="Failed due to timeout")
    

    你的情况

    Given (/^I do this$/)do 
      do some...
      sleep 10
      fail(msg="failure message")
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-22
      • 1970-01-01
      • 2018-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-09
      • 2016-01-02
      相关资源
      最近更新 更多