我試圖使用selenium webDriver + TestNG自動化應用程序。我在使用多個assert語句,如 Assert.assertEquals(「Dhaval」,「Dhaval1」);我們可以在嘗試中處理Assert失敗並在testNG中捕獲
,我試圖趕上使用嘗試& catch塊assertionfail例外。因爲我正在填寫一個excell表格來測試結果。
但是斷言失敗的任何應用程序直接停止執行並且catch塊將不會執行。
任何建議。
在此先感謝!!!!
我試圖使用selenium webDriver + TestNG自動化應用程序。我在使用多個assert語句,如 Assert.assertEquals(「Dhaval」,「Dhaval1」);我們可以在嘗試中處理Assert失敗並在testNG中捕獲
,我試圖趕上使用嘗試& catch塊assertionfail例外。因爲我正在填寫一個excell表格來測試結果。
但是斷言失敗的任何應用程序直接停止執行並且catch塊將不會執行。
任何建議。
在此先感謝!!!!
捕獲異常是一種不好的做法,他們都聲稱是有原因的。 你想要做的是實現自定義ITestListener
並在onTestFailure(ITestResult result)
方法中定義所需的邏輯,如果情況將失敗,將執行此方法中的代碼。
試試這個:
try {
Assert.assertEquals("Dhaval", "Dhaval1");
}
catch (AssertionError e) {
Assert.assertEquals("Dhaval", "Dhaval");
}
這是如何回答這個問題,這應該做什麼?你吃了一個例外,然後當它實際上失敗時記錄一個通行證? – JeffC
它的工作原理...謝謝 –
是bcoz我不使用的最終檢測結果報告TestNG的, –
如果你正在處理的測試方法裏面的測試結果,將其保存到電子表格中,你正在做一個不好的做法。看看這裏失去此:http://www.techbeamers.com/save-selenium-webdriver-testng-result-excel/
否則,如果你真的需要這樣做:在測試斷言
try {
Assert.assertNotEquals(actualValue, expectedValue);
} catch (Exception e) {
// Thread the excpetion here
}
您可能需要發佈有問題的代碼示例+您收到的異常文本。 – Josh
你的問題很難理解,但我認爲你正在尋找的是一個軟的斷言。斷言不會導致測試立即停止並失敗。看看這是否有幫助...記下答案評論中的鏈接。 http://stackoverflow.com/questions/19091526/how-soft-assertions-work – JeffC
喬希 - 這是一個簡單的問題,如果我不想停止執行自動腳本如果斷言失敗怎麼辦... –