gpt4 book ai didi

rspec - 当任何规范失败时如何自动制作Rspec save_and_open_page

转载 作者:行者123 更新时间:2023-12-03 23:44:26 26 4
gpt4 key购买 nike

我有...

/spec/spec_helper.rb :

require 'capybara/rspec'
require 'capybara/rails'
require 'capybara/dsl'

RSpec.configure do |config|
config.fail_fast = true
config.use_instantiated_fixtures = false
config.include(Capybara, :type => :integration)
end

因此,一旦任何规范失败,Rspec 就会退出并显示错误。

在这一点上,我希望 Rspec 也自动调用 Capybara 的 save_and_open_page方法。我怎样才能做到这一点?

Capybara-Screenshot看起来很有希望,但是虽然它将 HTML 和屏幕截图都保存为图像文件(我不需要),但它不会自动打开它们。

最佳答案

在 rspec 的配置中,您可以为每个示例定义一个后 Hook (https://www.relishapp.com/rspec/rspec-core/v/2-2/docs/hooks/before-and-after-hooks)。它没有很好的记录,但是这个钩子(Hook)的 block 可能需要 example参数。在 example您可以测试的对象:

  • 是功能规范吗:example.metadata[:type] == :feature
  • 是否失败:example.exception.present?

  • 截取的完整代码应如下所示:
      # RSpec 2
    RSpec.configure do |config|
    config.after do
    if example.metadata[:type] == :feature and example.exception.present?
    save_and_open_page
    end
    end
    end

    # RSpec 3
    RSpec.configure do |config|
    config.after do |example|
    if example.metadata[:type] == :feature and example.exception.present?
    save_and_open_page
    end
    end
    end

    关于rspec - 当任何规范失败时如何自动制作Rspec save_and_open_page,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13982425/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com