我正在使用Rspec来测试rails应用程序。 我有2个表导入数据(测试和开发数据库)
整个应用程序依赖于表数据,这意味着整个功能是匹配,计算和测量该表中的数据并将其放入其他表中。
所以,在测试时,删除这些表的数据是没有意义的,但Rspec仍在从中删除数据。
我的问题是: 如何强制Rspec不删除这些表中的数据(永远不会)?
我的规范帮助文件
require 'rubygems'
require 'spork'
Spork.prefork do
end
Spork.each_run do
end
ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
RSpec.configure do |config|
config.mock_with :rspec
config.fixture_path = "#{::Rails.root}/spec/fixtures"
config.use_transactional_fixtures = true
end
答案 0 :(得分:1)
解决方案是 在spec_helper.rb文件中我应该改变这个
config.use_transactional_fixtures = true
到这个
config.use_transactional_fixtures = false
在我需要清理数据库的测试中,我使用delete_all或者database_cleaner手动清理它(对你来说很方便)
这解决了我的问题,并使数据库在测试中保持不变。