rspec或database_cleaner都不会回滚我的测试

时间:2015-08-11 01:56:18

标签: ruby-on-rails-4 rspec

由于我无法弄清楚的原因,我的数据库在每次测试后都没有得到清理。 我依靠   config.use_transactional_fixtures = true

但那不起作用,所以我选择了database_cleaner,但那也不行。

我已根据自述文件配置了数据库清理程序:

RSpec.configure do |config|
  config.before(:suite) do
    DatabaseCleaner.strategy = :deletion
    DatabaseCleaner.clean_with(:truncation)
  end

  config.around(:each) do |example|
    DatabaseCleaner.cleaning do
      example.run
    end
  end
end

但是这个测试失败了:

describe "db_cleaner" do
    it "should clean db" do
      FactoryGirl.create :question
      expect(Question.all.count).to eq(1)
    end
end

Failure/Error: expect(Question.all.count).to eq(1)
expected: 1
got: 7

(并且每次都会继续增加)

我用

调用测试
bin/rspec spec/models/concerns/results_compiler_spec.rb:12

我正在跑步

rspec-rails 2.99.0
rails 4.2.0
factory_girl_rails 4.5.0
database_cleaner 1.4.1

任何帮助都非常感激。

1 个答案:

答案 0 :(得分:0)

我从来没有在这个特定的项目中找到答案,但我在最近的一个项目中发现了它,并发现这是因为我要包括

require 'rails_helper'

在我的规范中。

(带有它的规格清洁很好,规格没有没有)