我们有一个使用分片数据库的 AR-Octopus gem 项目。我们遇到的问题是 gem 'database_cleaner' 在使用这个设置时没有清理记录,因为我们的测试数据库中一直有剩余的记录,这会导致我们的测试套件出现问题。
我找到了这个 GitHub 要点 - https://gist.github.com/nowlinuxing/22ea0ab673a5622eb48d
这是我的 database_cleaner 配置文件
# spec/support/database_cleaner.rb
require 'database_cleaner'
RSpec.configure do |config|
config.before(:suite) do
DatabaseCleaner.strategy = :transaction
DatabaseCleaner.clean_with(:truncation)
end
["master", *Octopus.config[Rails.env].keys].each do |shard|
DatabaseCleaner[:active_record, model: ActiveRecord::Base.using(shard)]
end
config.around(:each) do |example|
DatabaseCleaner.cleaning do
example.run
end
end
end
有没有人遇到过这个问题?如果是这样,你做了什么来解决这个问题?只是寻找一些有用的见解。