2015-10-15 13 views
0

我正在使用assert來驗證Selenium webdriver中的方案。 以下是我的代碼。如果我在第一行中出現斷言錯誤,那麼執行不會發生在下一行。但是我想執行下一行,並且想要在testng xslt中打印失敗報告。我正在使用ANT來觸發我的構建。如何在selenium中使用斷言,以便如果它引發斷言錯誤,下一行將不會跳過(java)

Assert.assertEquals(actualdatesent, expecteddatesent, "comparing assert date"); 
Assert.assertEquals(actualuccnumber, expecteduccnumber);  

編輯

try-catch塊

try 
{ 
    Assert.assertEquals(actualdatesent, expecteddatesent, "date validation failed"); 
    Assert.assertEquals(actualuccnumber, expecteduccnumber, number validation failed); 
} 
catch(Throwable T) 
{ 
    ErrorUtils.addVerificationFailure(T); 
    SeleniumScreenshot.takeFailedScreenshot(testname); 
} 
+2

使用testNG的'SoftAssert'如下。 'private static SoftAssert softAssert = new SoftAssert();''softAssert.assertEquals(actualuccnumber,expecteduccnumber);' – MKay

+0

感謝您的輸入。 它的工作,我也能夠繼續下一行。 但我想將失敗的消息添加到我的Testng報告中。 可以請讓我知道如何添加失敗的消息到我的報告。下面是我的catch catch代碼 嘗試Assert.assertEquals(actualdatesent,expecteddatesent,「date validation failed」); Assert.assertEquals(actualuccnumber,expecteduccnumber,number validation failed); } –

+0

catch(Throwable T){ \t \t \t ErrorUtils.addVerificationFailure(T); \t \t \t SeleniumScreenshot.takeFailedScreenshot(testname); \t \t} 通常,當我使用簡單的斷言,當它拋出斷言錯誤catch塊將採取此添加驗證失敗(),它正在顯示在我的報告。 但在軟斷言情況下,我應該如何實現這一點。我應該通過在使用軟斷言時放置if else條件直接調用Add verification failure()。 –

回答

0

的唯一方法就是圍繞每一個與try {} catch (AssertionError ex)斷言和異常信息存儲在列表中。在方法結束時,您將需要檢查列表是否爲空,並且自己將列表中的所有消息連接起來並丟棄AssertionError

+0

謝謝,它適用於我。 –