Rails Rspec Capybara和DatabaseCleaner - 仅在特征测试中使用截断

时间:2013-02-14 17:51:43

标签: ruby-on-rails testing capybara database-cleaner

我看到这个很酷的方法只使用数据库清理程序:使用以下方法截断capybara测试:js =>真

在spec_helper.rb中:

config.before(:each) do
  DatabaseCleaner.strategy = if example.metadata[:js]
    :truncation
  else
    :transaction
  end
  DatabaseCleaner.start
end

config.after(:each) do
  DatabaseCleaner.clean
end 

问题是,使用水豚进行的任何功能测试似乎都需要清除策略:截断。

然而,所有其他规格都适用于:交易,这要快得多。

有没有一种方法可以仅为capybara功能测试指定策略?类似的东西:

DataCleaner.strategy( :truncation ) if :type => :feature

1 个答案:

答案 0 :(得分:2)

这应该这样做,让我知道

config.after(:all, :type => :feature) do
  DatabaseCleaner.clean_with :truncation
end