2012-02-29 27 views
0

我在維護Rails 3.1應用程序。應用程序數據庫有超過50多個表格,可能有30個表格需要種子數據才能正常運行。用大量種子數據測試Rails應用程序

應用程序有大量的統計數據(作爲種子數據),一些表包含超過150 000條記錄。我一直在使用fixtures進行測試(實際上使用rake任務從dev-db創建fixture文件)。由於夾具文件龐大,測試變得越來越慢。我們正在談論20分鐘以上運行整個測試套件。

在我開始做測試的時候,燈具是要走的路。目前我不太確定了。我一直在閱讀工具如factory_girl,水豚,rspec和spork。我已經做了一些測試,他們似乎很好,很有趣。

基本上我想知道你將如何測試這種設置?

賽程太慢了。謝謝您的幫助!

回答

1

那麼,應用程序與您的應用程序一樣巨大,測試套件也應該運行很長時間。我認爲這裏最大的改進就是在數據庫中使用更少的測試數據。
您可以測試關聯或任何與db相關的關聯,但是當您測試模型功能時,例如,在#save方法上設置模擬預期並驗證您的代碼更改了模型的@attributes。我認爲對數據庫進行測試是多餘的。您不必將rails stack作爲您的測試目標(當您將其保存到數據庫時執行此操作),因爲它已經經過了全面測試。

+0

感謝您的回答!我正在考慮徹底刪除設備並重新測試seed-data-only db。此外,我想使用database_cleaner gem來清理某些表(不是種子數據),以便爲每個測試重新開始。這種方法的想法? – hade 2012-03-01 09:26:25

+0

對不起,我不建議您在測試環境中使用任何數據庫清理方法。我的測試都沒有使用數據庫,我不知道這樣的策略。 – farnoy 2012-03-01 14:52:55