1

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

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

任何帮助都非常感谢!

-网

4

2 回答 2

3

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

Around do |scenario, block|
  Timeout.timeout(10) do
    block.call
  end
end
于 2015-02-28T23:17:56.853 回答
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
于 2016-01-27T12:24:34.137 回答