Я обнаружил, что когда я запускаю все свои тесты (около 20 файлов), моя тестовая база данных не всегда очищается, что означает, что мои тесты дают сбой при запуске всего набора, но успешны при запуске отдельных файлов.
Я обнаружил, что некоторые таблицы не пусты в начале спецификации.
Вот например:
require "rails_helper"
RSpec.describe AccountsWorkflow do
describe "initalizes" do
it "knows if it has children" do
expect(QbAccount.count).to eq(0) #QbAccount is ActiveRecord
[...] #fails with QbAccount.count =4
end
end
end
Первое ожидание не выполняется, что означает, что по некоторым причинам должны быть строки, не удаленные из предыдущего теста. Я рассмотрел настройки в ряде постов здесь, очиститель базы данных и следующие в spec_helper.rb
RSpec.configure do |config|
[other standard config settings]
config.before(:suite) do
DatabaseCleaner.clean_with(:truncation)
end
config.before(:each) do
DatabaseCleaner.strategy = :transaction
end
config.before(:each, :js => true) do
DatabaseCleaner.strategy = :truncation
end
config.before(:each) do
DatabaseCleaner.start
end
config.after(:each) do
DatabaseCleaner.clean
end
end
У меня также есть
config.use_transactional_fixtures = false
в rails.helper.rb. Любые идеи о том, почему мои тестовые таблицы могут быть пустыми в начале этого теста?