2015-05-29 76 views
1

我們的測試套件通常會因爲我們對不在我們控制範圍內的外部服務進行大量集成測試而中斷。當這些外部服務面臨服務中斷時,我們的構建開始失敗。是否有可能暫時忽略詹金斯的測試?

有沒有一種方法可以暫時忽略Jenkins中的測試(在外部服務中斷期間),以便它看起來不像整個構建沒有被破壞,實際上並不是這樣。

+1

您可以將其分解爲較小的作業,其中針對外部服務的集成測試各自在下游獨立觸發。通過這種方式,您可以在故障發生的位置獲得更多的粒度。 – ypx

+1

爲什麼不將整個測試套件作爲單獨的工作來移動,以便您可以暫時禁用它?讓你的工作更簡單一點。 – jinggoy

回答

1

您可以將其拆分成更小的塊並觸發下一個作業,即使其中一些作業失敗。

這樣做的另一種方法是以總是返回0的方式重新配置測試,但如果發生故障,他們會設置一些環境標誌。然後,您可以使用Conditional Buildstep Plugin,並查看該標誌是否已設置,並根據來自不同測試的標誌,您可以評估作業結束時作業是成功還是失敗。

2

是的,Jenkins Quarantine Plugin允許用戶臨時隔離測試。我一直處於和你一樣的狀況,這個插件絕對是一種救命!

但是該項目沒有真正維護。正如你所看到的,今天它的構建狀態是「失敗」,可能是由於最近Jenkins API的變化。


然而,插件已經被我用下面的配置運作良好:

  • 詹金斯1.526
  • 檢疫插件從SHA 2c8393d4c21106c4e4f7f3868e8fc19509aee884內置如下:

    git clone https://github.com/samsta/quarantine.git && cd quarantine 
    git checkout 2c8393d4c21106c4e4f7f3868e8fc19509aee884 
    mvn clean install 
    

我相信你可以找到一種方法使它工作,所以我希望你會試試看!

0

您可以考慮使用服務虛擬化工具來模擬您的服務的響應。通過這種方式,您可以在運行測試時解除對無法控制的服務的依賴。