2009-02-05 35 views
5

我使用Hudson來自動化一個非常大的重要產品的測試。我希望我的測試主機能夠運行儘可能多的併發構建,因爲他們在理論上將支持excel測試例外,而excel測試只能在每臺機器上隨時運行一個。任何數量的非excel測試都可以同時運行,但是每次最多隻能運行一次excel測試。如何確保在Hudson中只有一個類別的作業同時運行?

背景:

我的大多數測試是正常的單元測試 - 的那種,我可以並行運行很容易的事情。不幸的是,我的單元測試計劃中大量耗時的部分包含已在Excel中實施的測試。

在Excel中實施測試可能會讓你覺得很瘋狂 - 實際上有一個重要的原因:我們大多數用戶通過Excel訪問我們的系統。 Excel有自己獨特的處理數據的方式,所以唯一保證我們的東西適用於Excel用戶的方法是從字面上實現我們的應用程序Excel的reg測試。

我寫了一個測試運行器工具,它允許我輕鬆地啓動一組excel測試:每個測試都是一個.xls文件。每個組都是一個充滿excel文件的文件夾。我有大約30個團隊需要進行端到端測試。我的工具將每個測試的結果轉換爲Hudson能夠理解的JUnit風格的XML。測試使用pywin32com庫來自動執行excel。當他們自己運行時,他們是可靠的。

我有一組致力於運行測試的計算機。每臺機器都是四核的,理論上可以一次運行相當多的東西。不幸的是,我發現COM不能用來安全地控制每臺機器超過1個excel。

也就是說,如果第二個構建星號試圖通過COM與Excel交談,它可能會干擾已在運行的程序並導致兩個測試都失敗。

我可以像機器允許的那樣運行許多其他非excel進程,但我需要找到一種方法,以便Hudson不會嘗試啓動超過1個進程,這需要同時在任何一臺機器上運行excel。

+1

的可能重複[如何防止某些詹金斯從工作同時運行?](http://stackoverflow.com/questions/6276272/how-to-prevent-certain-jenkins-jobs-from-同時運行) – 2013-07-24 14:27:07

回答

0

是不是哈德森java?

既然你已經標記了這篇文章python,我會指出buildbot,有slave locks限制個別奴隸(或使用他們作爲更粗略的鎖如果你願意)。

+3

我正在測試Hudson中的Python/Excel應用程序。 Hudson是用Java編寫的,但實際上我沒有做任何Java編程。 – 2009-02-05 18:20:57

相關問題