2013-03-06 48 views
2

我有幾千個測試需要並行運行。測試是所有編譯的二進制文件,返回代碼爲0或非零(失敗時)。他們的一些未知的子集嘗試使用相同的資源(文件,端口等)。每個測試都假定它獨立運行並且只在資源不可用時報告失敗。使用py.test xdist控制測試的分佈

我正在使用Python來啓動每個使用子流程模塊的測試,並且它的工作很好。我研究了Nose進行並行化,但我需要自動生成測試(將1000多個二進制文件中的每一個包裝到使用子進程的Python類中),而Nose的多處理模塊不支持並行化自動生成的測試。

我最終決定使用PyTest,因爲它可以使用xdist插件通過SSH在遠程主機上運行自動生成的測試。

但是,據我所知,它看起來不像xdist支持任何形式的測試如何分佈控制。我想給它一組N臺機器,並且每臺機器有一個測試運行。

PyTest/xdist是我想要的嗎?如果沒有,那裏有一個工具可以做我想要的嗎?

+0

你能找到一種方法來做到這一點py.test xdist? 「我想給它一個N臺機器池,並且每臺機器都有一個測試運行」 如果不是使用xdist,您是否有任何其他解決方案? – sridhar249 2016-05-24 00:00:23

回答

0

我不確定這是否有幫助。但是,如果您事先知道如何劃分測試,而不是讓pytest分發測試,則可以使用持續集成服務器爲每個不同的計算機調用pytest的不同運行。使用-k或-m選擇測試子集,或者簡單地指定不同的測試目錄路徑,可以控制哪些測試一起運行。