Ruby on rails 在所有capybara测试之前运行block一次

Ruby on rails 在所有capybara测试之前运行block一次,ruby-on-rails,ruby,rspec,capybara,Ruby On Rails,Ruby,Rspec,Capybara,我正在使用Capybara和Rspec对rails应用程序进行集成测试。有没有办法在第一个Capybara测试运行之前运行一次before块,而不在每个特性规范之前运行它?在my RSpec.configure块中放置一个块会导致它在每个功能规范之前运行: RSpec.configure do |config| config.before(:all, type: :feature) do # do some stuff end end 我认为你在过度设计这项任务。既

我正在使用Capybara和Rspec对rails应用程序进行集成测试。有没有办法在第一个Capybara测试运行之前运行一次before块,而不在每个特性规范之前运行它?在my RSpec.configure块中放置一个块会导致它在每个功能规范之前运行:

RSpec.configure do |config|
    config.before(:all, type: :feature) do
      # do some stuff
    end
end

我认为你在过度设计这项任务。既然要运行一次,只需运行它:

cb = lambda { puts 'I am run once' }
RSpec.configure do |config|
  cb.call
end

我没有想到要这么做,因为我需要capybara dsl来运行我需要的命令,但后来我意识到,我仍然可以通过在spec_助手中简单地在命令前面加上“capybara”来访问它们。非常感谢。或者通过包含相应的
Capybara::DSL
或其他名称,我目前无法访问源代码。欢迎
RSpec.configure do |config|
    config.before(:suite) do
      # do some stuff
    end
end