【发布时间】:2016-01-27 20:24:34
【问题描述】:
当测试运行很长时间时,Calabash 测试在场景之间挂起,如果没有满足任何条件,我预计场景会超时。但是这也没有发生,因此测试继续进行下一个场景。
有没有一种方法可以在我的代码中实现来持续监控每个场景的运行时间,以便如果它需要比预期更长的时间,它会强制场景失败,然后下一个场景正常运行?
非常感谢任何帮助!
-网格
【问题讨论】:
标签: cucumber calabash calabash-ios
当测试运行很长时间时,Calabash 测试在场景之间挂起,如果没有满足任何条件,我预计场景会超时。但是这也没有发生,因此测试继续进行下一个场景。
有没有一种方法可以在我的代码中实现来持续监控每个场景的运行时间,以便如果它需要比预期更长的时间,它会强制场景失败,然后下一个场景正常运行?
非常感谢任何帮助!
-网格
【问题讨论】:
标签: cucumber calabash calabash-ios
你可以使用环绕钩子,这个会在 10 秒后超时:
Around do |scenario, block|
Timeout.timeout(10) do
block.call
end
end
【讨论】:
您可以使用此语法强制步骤失败
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
【讨论】: