我填充了一个数据库,我想对它运行rspec测试。
Rspec似乎在开始测试之前删除了db。我怎么能告诉Rspec不删除这个test_db?
我在Rails/Rspec环境之外填充db。要构建构建数据库所需的所有工厂对于项目范围来说是不切实际的,但我想对现有的DB进行测试。
你可以使用database cleaner gem来清理你的数据库,并且文档建议rspec使用以下配置作为这个链接,但是你可以这样做:
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
因此,每次运行测试用例时都会生成该数据,请阅读有关为respect -test创建数据的更多信息。
我使用了这个问题中给出的建议:Rspec不要删除两个特定的表
在spec_helper.rb:注释掉对truncate_all_tables的调用。
config.use_transactional_fixtures = true
config.use_transactional_fixtures = false