告诉Rspec - 在运行测试之前不要删除我的test_db

时间:2014-08-18 13:50:35

标签: ruby-on-rails rspec rspec-rails

我填充了一个我想要运行rspec测试的数据库。

Rspec似乎在开始测试之前删除了db。如何告诉Rspec不要删除这个test_db?

我在Rails / Rspec环境之外填充数据库。构建构建数据库所需的所有工厂对于项目范围来说是不切实际的,但我想针对现有数据库进行测试。

2 个答案:

答案 0 :(得分:2)

您可以使用database cleaner gem管理清理数据库,并且文档建议将rspec的以下配置作为此link,但您更改如下:

RSpec.configure do |config|

  config.before(:suite) do
    DatabaseCleaner.strategy = :transaction
    DatabaseCleaner.clean_with(:truncation)
  end
end

但是,我更喜欢在场景之前在测试环境中创建数据库,例如:

describe "specific name for this scenario" do
  before do
    @object = create(:object) # using factory girl as example
  end
end

因此,每次运行测试用例时都会生成此数据,请阅读有关creating data for rspec-test的更多信息。

答案 1 :(得分:0)

我使用了这个问题中给出的建议:Rspec don't delete 2 specific tables

在spec_helper.rb中:

注释掉对truncate_all_tables的调用。

然后更改了行:

config.use_transactional_fixtures = true

config.use_transactional_fixtures = false
相关问题