RSpec数据库无法清洁

时间:2018-11-13 23:04:41

标签: rspec rspec-rails

我发现当我运行所有测试(大约20个文件)时,我的测试数据库并不会总是被清除,这意味着当整个套件都运行时我的测试会失败,而运行单个文件时我的测试会成功。 / p>

我发现规范开始时有些表不是空的。

例如:

require "rails_helper"

RSpec.describe AccountsWorkflow do
  describe "initalizes" do
     it "knows if it has children" do
      expect(QbAccount.count).to eq(0)   #QbAccount is ActiveRecord
     [...]                               #fails with QbAccount.count =4
     end
    end
end

第一个期望失败,这意味着由于某些原因,必须有未删除先前测试中的行。我已经在数据库清理程序的许多文章中回顾了该设置,并在spec_helper.rb

中包含以下内容
RSpec.configure do |config|
 [other standard config settings] 
 config.before(:suite) do
    DatabaseCleaner.clean_with(:truncation)
  end
  config.before(:each) do
    DatabaseCleaner.strategy = :transaction
  end
  config.before(:each, :js => true) do
    DatabaseCleaner.strategy  = :truncation
  end
  config.before(:each) do
    DatabaseCleaner.start
  end
  config.after(:each) do
     DatabaseCleaner.clean
  end
end

我也有

   config.use_transactional_fixtures = false

在rails.helper.rb中。为什么在测试开始时为什么我的测试表仍然不为空?

0 个答案:

没有答案