2012-05-10 47 views
9

我有一個Jenkins構建作業,它使用Jenkins參數化觸發器插件以測試名稱作爲參數觸發多個測試作業。這啓動了多個運行正確的多個執行程序的測試版本。在Jenkins中聚合下游參數化作業的結果

我現在想要使用'彙總下游測試結果 - >自動彙總所有下游測試'來彙總結果。我已經在Build工作中啓用了這一功能,並設置了指紋識別,以便將它們識別爲下游作業。在構建工作lastBuild頁我可以看到他們是公認的下游構建:

下游構建

測試#1-#3

當我點擊「聚集的測試結果」但它只顯示最新的(測試#3)。如果工作總是運行相同的測試,但是我的測試套件都運行不同的部分,這可能是一個好的行爲。

有沒有什麼辦法可以把這個聚合到所有相關的下游測試版本?

其他: 如果您複製測試作業,則聚合測試結果將起作用。這並不理想,因爲我有大量的測試套件。

+1

我在聚合下游測試結果方面遇到了很多麻煩,最終我自己「手動」地聚合它們:等待下游作業完成並將測試報告複製到父級。 –

+0

得到了自動聚合工作(通過複製作業),我可以看到它不是我所希望的(它不會合並測試層次結構或聚合圖)。我會接受一個手動完成參數化作業的解決方案。 –

回答

3

我將概述手動解決方案(如在評論中提到的),如果你需要他們後來提供更多的細節:

P是父作業和d是下游作業(您可以輕鬆將該方法擴展到多個下游作業)。

  1. P的實例(版本)經由生成步驟(作爲生成後步驟),並等待d的完成調用經由Parameterized Trigger Plugin d。隨着其他參數,P傳遞給d一個參數 - 姑且稱之爲PARENT_ID - 基於P的建設的BUILD_ID
  2. D執行測試並將它們歸檔爲工件(以及jUnit報告 - 如果適用)。
  3. P隨後執行經由發現d的適當構建PARENT_ID外部Python(或內部的Groovy)腳本(你迭代構建d的並檢查PARENT_ID參數的值)。該腳本然後將文物從D複製到PP發佈它們。

如果使用Python(這就是我所做的) - 利用Python JenkinsAPI wrapper。如果使用Groovy - 利用Groovy Plugin並將腳本作爲系統腳本運行。然後,您可以通過其Java API訪問Jenkins。

+0

該流程的問題是P還沒有存檔它的工件。通常情況下,你會測試工件,所以你不得不把它分割得更遠。 – Wernight

+0

@malenkiy_scot你說過「通過PARENT_ID找到D的適當版本」。我不知道這究竟意味着什麼。 D用Parent_Id做了什麼,現在可以搜索它的內容了?它是否將測試結果存檔爲ZIP文件,並且該zip文件名是parent_id? –

相關問題