我填充了一个我想要运行rspec测试的数据库。
Rspec似乎在开始测试之前删除了db。如何告诉Rspec不要删除这个test_db?
我在Rails / Rspec环境之外填充数据库。构建构建数据库所需的所有工厂对于项目范围来说是不切实际的,但我想针对现有数据库进行测试。
答案 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