7

我創建在軌道上一個網站,迄今已使用特拉維斯-CI持續集成。我正在嘗試Wercker,以便持續集成和部署。測試步伐在Wercker上失敗了,因爲它運行了超過25分鐘,並且對我而言,也許我的測試由於某種原因需要非常長的時間。測試套件需要多長時間?

網站我的工作是相當大的,但不是巨大的。我使用rspec和capybara進行測試,使用webkit進行集成測試。我寫了非常全面的集成測試,試圖確保我覆蓋每個功能。在travis-ci上,整個過程需要25-30分鐘才能運行(包括安裝軟件包)。

這可能是這個論壇含糊不清的問題,但儘管如此,我想獲得一些投入。擁有運行半小時或更長時間的測試套件是不可接受的嗎?您通常會在一組集成測試中遇到什麼樣的測試套件時間?

+0

取決於模塊有多大,你測試 –

+0

還沒有看到任何測試,雖然多久 –

回答

9

這是正常的商業網站有集成測試套件,甚至是精心設計的,這將需要一個小時或更多,如果他們在一個單一的過程中開發人員的機器上運行運行。所以你給了我們沒有理由認爲你寫了太多測試或者寫出來讓它們異常緩慢地運行。但是,等待太久以致無法知道您的承諾是否良好。根據我的經驗,半個小時太長了,15'是邊際的;如果運行所有測試需要很長時間,那麼觸發構建的人將在構建運行時啓動其他內容或走開,然後在構建中斷時將不得不進行上下文切換或不在其周圍。更長的構建也會增加給定構建中的平均承諾數量,這使得在構建中斷時更難分配責任。

因此,讓您的CI構建以合理的速度運行。大話題,但一些出發點:

  • parallel_tests寶石是在箱儘可能快地運行你的套件(包括單元測試和黃瓜)的方式(這隻會讓你這麼遠,但現在可能已經足夠了)。
  • 下面是分裂黃瓜情景另一顆寶石(我沒用過)跨機箱:https://github.com/cloudcastle/cucumber_in_groups
  • 特拉維斯CI,CircleCI想必其他託管的持續集成的服務提供方式,跨機箱分割你的測試。

這也是有幫助的單元測試套件,覆蓋大部分或所有的代碼和運行速度比你的集成測試快得多(以秒或至多幾分鐘),使得大部分錯誤之前抓到集成測試運行。

+0

謝謝,這是非常有益的! –