2013-08-23 85 views
1

我在做什麼:使用Jenkins針對各種環境運行相同的測試套件和測試用例 - dev/staging/production。我正在使用WebDriver與Java實現和TestNG。選擇性地禁用每個環境的自動化案例

我想做什麼:有選擇地禁用一些測試,但不是整個測試套件,從對環境的依賴運行。我不想在環境之間維護不同的代碼庫,而是想知道如何實現這一點。

最初的想法:我想設定一個詹金斯系統屬性中的每個環境中的每個作業和每個測試裝飾將不得不拉這條信息,以確定是否應該跑還是不行。我認爲這很笨拙,我不知道該怎麼做,我不確定這是否正確。

有人能告訴我完成此操作的最佳方法嗎?我希望這不是最好的方法。

感謝,

回答

1

你看着TestNG的聽衆?

您可以在運行berfore測試套件之前編寫一個偵聽器,但是在運行測試之後已經有標識符來遍歷測試列表並移除您不想運行的測試。 因爲這是程序化的,你可以編寫任何java來實現你想要的。

此外,您可以創建註釋以確定哪些測試在哪個環境下運行;例如使用類似@RunInEnvironment({「UAT」,INT「})的方式註釋這些測試;然後,您的聽衆可以使用這些註釋從列表中刪除不需要的測試

+0

我喜歡這種方法,今天晚些時候我會用@DontRunIn({「PROD」})來玩這個遊戲。 – loljoewtf