0

我正在使用带有黄瓜的 ruby​​ selenium webdriver 来运行多个浏览器测试。我有几个步骤可能会引发异常,并且不想在每个步骤周围放置一个开始/救援块。我找到了黄瓜的环绕钩子,它应该允许我在一个大块中调用我的所有步骤,并在其周围放置一个开始/救援块。不幸的是,当引发 selenium 异常时,该块永远不会收到异常。我推测黄瓜,无论出于何种原因,都有它自己的开始/救援块,它在我之前被触发。对于 Rails,有一个名为 @allow-resue 的标签可以让异常通过,不幸的是这不适用于 Selenium。有谁知道解决方法?

4

1 回答 1

0

绕钩无济于事。完全没有。您只需要查看 'around_hook.rb' 'execute' 方法定义:

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

因此,如果它不知道内部测试步骤的结果,那么它肯定不会知道其余所述步骤中发生的任何异常。

PS我也有同样的问题...

于 2017-08-08T00:28:30.100 回答