我正在使用带有黄瓜的ruby selenium webdriver来运行多个浏览器测试。我有几个步骤可以引发异常,并且不希望在每个步骤周围放置一个开始/救援块。我找到了黄瓜的周围钩子,它应该允许我在一个大块中调用我的所有步骤,并在其周围放置一个开始/救援块。不幸的是,当引发selenium异常时,块永远不会收到异常。无论出于什么原因,我都认为黄瓜有自己的开始/救援块,它在我之前被触发。对于rails,有一个名为@ allow-resue的标签允许异常通过,遗憾的是这对Selenium不起作用。有没有人知道解决方法?
答案 0 :(得分:0)
周围的钩子没有帮助。完全没有。您只需要查看' around_hook.rb' '执行'方法定义:
def execute(*args, &continue)
@timer.start
@block.call(continue)
Result::Unknown.new # Around hook does not know the result of the inner test steps
rescue Result::Raisable => exception
exception.with_duration(@timer.duration)
rescue Exception => exception
failed(exception)
end
因此,如果它不知道内部测试步骤的结果,那么它肯定不会知道其余所述步骤中出现的任何异常。
P.S。我有同样的问题......