2017-01-28 1 views
1

Я хочу очистить тестовую базу данных перед запуском каждого файла спецификации.Как очистить базу данных перед запуском каждого файла спецификации?

Я уже использую rspec с заводской девушкой.

Спасибо, Hare

+0

Вы используете 'database_cleaner' gem? – Pavan

+0

Да, я использую его. Но не уверен, как писать для каждого файла. –

ответ

3

Добавить в RSpec.configure блок в вашем spec_helper.rb

config.before(:suite) do 
    DatabaseCleaner.clean_with :truncation 
    end 

    config.before(:each) do 
    DatabaseCleaner.strategy = :transaction 
    end 

    config.before(:each) do 
    DatabaseCleaner.start 
    end 

    config.after(:each) do 
    DatabaseCleaner.clean 
    end 

должны работать

+0

На самом деле в моей спецификации/контроллерах склад имеет много контроллеров, я хочу очистить мою базу данных перед запуском каждого контроллера. –

+1

Перед выполнением каждого теста следует очистить свою базу данных. Необходимо убедиться, что ранее выполненный тест не повлиял на тестовую среду, подготовленную для текущего теста, например. в тестовой базе данных не было никакого мусора. – VAD

0

Это то, что я обычно делаю для DatabaseCleaner

# Database Cleaner 
config.before(:suite) do 
    DatabaseCleaner.strategy = :transaction 
    DatabaseCleaner.clean_with(:truncation) 
end 
config.before(:each) do 
    DatabaseCleaner.start 
end 
config.after(:each) do 
    DatabaseCleaner.clean 
end 

Это сделает уверенный, что ты e чистая база данных для каждого теста.

Оформить заказ a related, albeit old, article by Avdi для получения дополнительной информации.

Смежные вопросы