2012-01-05 117 views
1

我測試套件,在我的Rails應用程序使用純淨水豚(無黃瓜)驗收測試。優化水豚次

它具有220個的例子,它需要21分鐘完成。我的非JS驅動程序是rack_test,我的js_driver是capybara-webkit而不是硒。

我想提高測試時間,但我不知道是否有一個共同的瓶頸,在這種測試。

的一些想法,我有/有:

  • 改變水豚服務器。它使用雜種作爲後備。默認很薄。我安裝了輕薄,但我沒有得到任何速度改善。看起來好像是併發的優點,一個測試沒有它。

  • 因爲我打掃測試之間的數據庫,我的應用程序的私有部分的每個示例前(MOST的例子都是這樣)我需要登錄。這意味着它會登錄該應用200次。有一種方法可以在示例之間維護會話以避免一次又一次地登錄?

回答

2

有浮現在我的腦海裏兩件事情:

  1. parallel_tests如果您運行的多核https://github.com/grosser/parallel_tests

  2. 提供了一個後門登錄路由可以提高測試速度的測試登錄可以通過繞過登錄步驟來提高測試速度

in一般的驗收測試很慢。這就是爲什麼我只將它們用於測試關鍵用戶工作流程的原因。我儘量讓整個測試套件保持在5分鐘的範圍內。我真的認爲這對你的應用程序測試套件來說非常重要。這就是爲什麼我嘗試在rails測試之外放置大量邏輯,以便測試運行在一秒或更短時間內完成。

+1

我只是實現了一個後門登錄。好戲!我在整個套房裏剃了4分鐘(從21分鐘到17分)。 並行測試它比較複雜,因爲在截斷模式使用database_cleaner即時通訊。我會看看那顆寶石。 Tranks! – 2012-01-06 17:46:59