Cucumber 葫芦黄瓜:如果场景需要很长时间或可能被绞死,如何强制失败葫芦步骤

Cucumber 葫芦黄瓜:如果场景需要很长时间或可能被绞死,如何强制失败葫芦步骤,cucumber,calabash,calabash-ios,Cucumber,Calabash,Calabash Ios,当测试运行很长时间时,葫芦测试挂起在两个场景之间,如果任何条件都不满足,我希望场景会超时。然而,这也不会发生,所以测试将进入下一个场景 是否有一种方法可以在代码中实现,以保持监视每个场景的运行时间,从而在需要比预期更长的时间时强制场景失败,然后下一个场景正常运行 非常感谢您的帮助 -mesh您可以使用环绕挂钩,此挂钩将在10秒后超时: Around do |scenario, block| Timeout.timeout(10) do block.call end end 您可

当测试运行很长时间时,葫芦测试挂起在两个场景之间,如果任何条件都不满足,我希望场景会超时。然而,这也不会发生,所以测试将进入下一个场景

是否有一种方法可以在代码中实现,以保持监视每个场景的运行时间,从而在需要比预期更长的时间时强制场景失败,然后下一个场景正常运行

非常感谢您的帮助


-mesh

您可以使用环绕挂钩,此挂钩将在10秒后超时:

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

您可以使用环绕挂钩,此挂钩将在10秒后超时:

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

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

语法 范例

就你而言
可以使用此语法强制步骤失败

语法 范例

就你而言
你们试过这个吗?因为这个绕钩并没有给我所有场景的相同结果。有时会超时,有时不会。嗯,可能是测试有后台步骤吗?我有前后不一致的结果与钩和葫芦。我把问题追溯到黄瓜本身。在研究了相关问题之后,我得出结论,挂钩将在Cucumber2.0中重新工作。我们正在评估葫芦+黄瓜2.0的兼容性。请不要问我们何时会添加cucumber 2.0支持。这将取决于cucumber 2.0何时发布;一些我们无法控制的东西。你们试过了吗?因为这个绕钩并没有在所有场景中给我相同的结果。有时会超时,有时不会。嗯,可能是测试有后台步骤吗?我有前后不一致的结果与钩和葫芦。我把问题追溯到黄瓜本身。在研究了相关问题之后,我得出结论,挂钩将在Cucumber2.0中重新工作。我们正在评估葫芦+黄瓜2.0的兼容性。请不要问我们何时会添加cucumber 2.0支持。这将取决于cucumber 2.0何时发布;我们无法控制的事情。
fail(msg ="Failed due to timeout")
Given (/^I do this$/)do 
  do some...
  sleep 10
  fail(msg="failure message")
end