2012-01-20 75 views
12

我目前的項目有一個100%代碼覆蓋率的單元測試策略。我們的持續集成服務不允許開發人員在沒有100%覆蓋的情況下推送代碼。Python中的分佈式單元測試和代碼覆蓋

隨着項目的發展,有足夠的時間來運行完整的測試套件。雖然開發人員通常運行與他們正在更改的代碼相關的測試子集,但他們通常會在提交給CI之前完成最後一次完整運行,而CI服務器本身也運行完整的測試套件。

單元測試的本質是高度可並行化的,因爲它們是獨立的,從測試到測試都是無狀態的。他們只返回兩條信息:通過/失敗和覆蓋的代碼行。地圖/縮小解決方案看起來很好。

是否有任何Python測試框架可以在具有代碼覆蓋率的機器集羣上運行測試,並在完成時結合結果?

+0

你有沒有找到你想要的東西? –

+0

@ stair314可悲的是。我們通過優化我們的單元測試並減少了大量不必要的工作,從而多花了一些時間。我們還將機器添加到CI羣集中,以便我們可以並行構建(和測試),但我們仍然每次都運行所有測試。希望在某個時候,我們可以把重點放在這個問題上。 –

回答

4

我不知道任何測試框架將運行分佈在一組機器上的測試,但鼻子支持在同一臺機器上使用multiprocessing並行測試。

最小,可能是一個很好的起點,以創建一個分佈式的測試框架,你正在尋找

1

不完全是,但我能記得的最近距離Hadoop的羣體是使用JUnit與Hadoop的測試。這裏是mail。正如在郵件中搜索gridunit的論文所述。

以分佈式方式使用Hadoop進行單元測試非常有趣。任何圍繞此的框架都會非常有用,但是開發一個框架不應該很困難。如果有興趣讓我知道。

4

我認爲沒有完全符合您需求的框架。

我知道py.test有xdist插件,它增加了分佈式測試執行程序。你可以用它來寫你的CI基礎設施。

+0

鏈接已死亡。 –

+0

https://pypi.python.org/pypi/pytest-xdist – Twirrim

相關問題