2013-08-06 85 views
4

我有部署後每次運行的SeleniumWebdriver/TestNG/Maven/Java持續集成測試。有時,用戶界面中缺少一個元素,並且測試會引發異常(稍後會在代碼中捕獲這些異常,因爲在catch語句中我關閉了瀏覽器),因此構建標記爲成功。Jenkins將測試版本報告爲成功,即使有異常導致失敗?

奇怪的是,我之前也有異常導致的測試失敗,並且構建仍然被認爲是成功的。

如何配置我的maven pom.xml文件或jenkins構建,以便它標記每個引發異常的測試,一個FAILURE?

編輯:讓robjohncox的性反應之後,我現在有一件事我需要做的:

究竟怎樣才能再次拋出這個錯誤嗎?

} catch (Exception e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
    quit(driver); 
    sendMail(); 
} 

是這樣做的嗎?

throw e; 

回答

1

我認爲這個問題涉及到您正在捕獲代碼中的異常這一事實。由於您正在處理該異常,因此它不會傳播到您的測試運行器,因此測試運行器不知道引發了異常。

捕捉到異常並關閉瀏覽器後,應該重新拋出異常,然後應該由測試框架報告測試失敗。代碼看起來像這樣:

public void myTestCase() { 
    try { 
     // Do the testing 
    } 
    catch(Exception ex) { 
     // Turn off the browser 
     throw ex 
    } 
} 
+0

有趣。將嘗試它並分享結果。 –

+0

我編輯了我的問題 –

+1

只要在catch塊中添加'throw e;'作爲最後一行(如上例所示):) – robjohncox

相關問題