Мое решение состояло в том, чтобы переключить DatabaseCleaner на стратегию очистки транзакций в functions / support / env.rb
if defined?(ActiveRecord::Base)
begin
require 'database_cleaner'
DatabaseCleaner.strategy = :transaction
rescue LoadError => ignore_if_database_cleaner_not_present
end
end
И обезьянить патч DatabaseCleaner, добавив функции / support / database_cleaner_patch.rb с
module DatabaseCleaner::ActiveRecord
#for now we will disable transactions
class Transaction
def start
end
def clean
end
end
end
У нас есть 3 базы данных в нашем проекте, с запросами между базами данных, поэтому мы не можем использовать транзакции, в противном случае я бы не стал вносить обезьяны в патч DatabaseCleaner