2013-03-18 52 views
0

我試圖使用database_cleaner gem設置清理我的規格。我有以下簡單的配置在我spec_helper.rb:Rails database_cleaner擦除整個數據庫

require 'database_cleaner' 


RSpec.configure do |config| 
    config.use_transactional_fixtures = false 

    config.before :suite do 
    DatabaseCleaner.strategy = :truncation 
    end 

    config.before :each do 
    DatabaseCleaner.start 
    end 

    config.after :each do 
    DatabaseCleaner.clean 
    end 
end 

運行規範不過,我注意到,在執行DatabaseCleaner.clean後,我的數據庫被徹底消滅了。我確定它只是爲了清理測試的影響......任何想法可能會導致這種行爲?

+1

** DatabaseCleaner.clean **預期的行爲是擦拭整個數據庫,因此您從測試到測試都有一個乾淨的開始(沒有任何泄漏)。 – Kocur4d 2013-03-18 13:05:29

回答

4

這是因爲你的策略設置爲:truncation,這確實清除了整個事情。

如果要限制它正是在測試完成後,再改變策略,以:transaction

從廣義上講,截斷是很簡單的,而不應該是在測試數據庫中的一個問題。

相關問題