2016-12-15 41 views
0

我試圖使用selenium webDriver + TestNG自動化應用程序。我在使用多個assert語句,如 Assert.assertEquals(「Dhaval」,「Dhaval1」);我們可以在嘗試中處理Assert失敗並在testNG中捕獲

,我試圖趕上使用嘗試& catch塊assertionfail例外。因爲我正在填寫一個excell表格來測試結果。

但是斷言失敗的任何應用程序直接停止執行並且catch塊將不會執行。

任何建議。

在此先感謝!!!!

+1

您可能需要發佈有問題的代碼示例+您收到的異常文本。 – Josh

+0

你的問題很難理解,但我認爲你正在尋找的是一個軟的斷言。斷言不會導致測試立即停止並失敗。看看這是否有幫助...記下答案評論中的鏈接。 http://stackoverflow.com/questions/19091526/how-soft-assertions-work – JeffC

+0

喬希 - 這是一個簡單的問題,如果我不想停止執行自動腳本如果斷言失敗怎麼辦... –

回答

1

捕獲異常是一種不好的做法,他們都聲稱是有原因的。 你想要做的是實現自定義ITestListener並在onTestFailure(ITestResult result)方法中定義所需的邏輯,如果情況將失敗,將執行此方法中的代碼。

1

試試這個:

try { 
Assert.assertEquals("Dhaval", "Dhaval1"); 
} 
catch (AssertionError e) { 
Assert.assertEquals("Dhaval", "Dhaval"); 
} 
+0

這是如何回答這個問題,這應該做什麼?你吃了一個例外,然後當它實際上失敗時記錄一個通行證? – JeffC

+0

它的工作原理...謝謝 –

+0

是bcoz我不使用的最終檢測結果報告TestNG的, –

0

如果你正在處理的測試方法裏面的測試結果,將其保存到電子表格中,你正在做一個不好的做法。看看這裏失去此:http://www.techbeamers.com/save-selenium-webdriver-testng-result-excel/

否則,如果你真的需要這樣做:在測試斷言

try { 
    Assert.assertNotEquals(actualValue, expectedValue); 
} catch (Exception e) { 
    // Thread the excpetion here 
} 
相關問題