calabash-cucumber:如果场景需要很长时间或者可能被绞死,如何强制失败的葫芦步骤

时间:2015-02-28 04:17:46

标签: cucumber calabash calabash-ios

Calabash测试在测试运行很长时间的情况之间挂起,我预计如果任何条件没有达到,情况会超时。然而,这也没有发生,以便测试转移到下一个场景。

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

任何帮助高度赞赏!!

-mesh

2 个答案:

答案 0 :(得分:3)

你可以使用around hook,这个会在10秒后超时:

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

答案 1 :(得分:1)

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

语法

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