我有一個Rails測試套件,它使用DatabaseCleaner
,FactoryGirl
和Capybara-Webkit
。在運行套件時,我所有的測試都通過我的機器,包括並行運行它們(parallel_rspec
)。使用集成和單元測試的整個測試套件的FactoryGirl和DatabaseCleaner最佳實踐
當我推到CI(circleci)時,我總是在我的集成測試中失敗。我懷疑這是因爲我在單元測試(控制器,服務,視圖等)中使用了transaction
策略。也許這是一個不好的做法,但是如果我需要一個模型在我的控制器中(例如),我一直在做FactoryGirl.create(:my_model)
。但是我懷疑我使用FactoryGirl創建模型的每個地方都應該在DatabaseCleaner中使用truncation
策略進行測試。
我剛剛標記了我的整個套件,使用truncation
並推送到CI,它是綠色的,這很棒,但現在套件的運行時間延長了50%。
所以,用實例FactoryGirl
ActiveRecord
模型時,我應該總是標誌着這些測試使用truncation
?
感謝您的任何和所有反饋。