【发布时间】:2023-04-08 18:49:01
【问题描述】:
我正在使用 Watir-Webdriver 和 RSpec 编写 Selenium 测试,它们在刚开始开发时可能会有点参差不齐。我遇到了一种情况,我想在之前的 UI 上创建一些东西:all,但是它可以抛出异常(基于时间或加载不良)。发生这种情况时,我想截屏。
这是我所拥有的:
RSpec.configure do |config|
config.before(:all) do |group| #ExampleGroup
@browser = Watir::Browser.new $BROWSER
begin
yield #Fails on yield, there is no block
rescue StandardError => e
Utilities.create_screenshot(@browser)
raise(e)
end
end
end
我运行它并得到一个错误:
LocalJumpError: 没有给出块(产量)
我认为 yielding 会起作用的原因是 RSpec 对 before 的定义:
def before(*args, &block)
hooks.register :append, :before, *args, &block
end
如何将我在 before :all 中的代码封装在开始/救援块中,而不必在每个套件上都这样做?
提前致谢。
【问题讨论】:
标签: ruby selenium rspec watir-webdriver