2015-12-30 173 views
1

我正在使用extentreports爲我的測試添加報告,這是使用Java和Selenium編寫的。 我注意到如果一個ExtentTest有兩個日誌「INFO」和「PASSED」,如果通行日誌沒有被捕獲,它將被視爲PASSED。我怎樣才能改變它,如果一個測試未通過它會自動被認爲失敗?將ExtentTest的默認值設置爲FAILED

回答

4

默認情況下,無法更改測試用例失敗的行爲。它是一個設計決定,每個測試框架都遵循(TestNG,Junit,NUnit等)而不僅僅是Extent Reports。

假設是開始測試,它會一直通過。所以即使你只有Info日誌,測試用例也被標記爲已通過。但是,如果默認情況下,您認爲測試失敗,直到遇到PASS,則測試仍被視爲失敗,因爲即使整個測試中的單個失敗狀態都無法通過測試,無論有多少傳遞日誌你有。

1

您不提供您用於範圍報告的代碼和版本的詳細信息。 假設u的使用範圍報告的版本2.40,並使用此代碼:

@AfterMethod 
public void tearDown(ITestResult result) 
{ 
    if(result.getStatus()==ITestResult.FAILURE) 
    { 
    //hope u know how to create ExtenTest and ExtentReport instance 
    //logger is extent test instance 
    logger.log(LogStatus.FAIL, "Title verification", image); 


} 

//report is ExtentReport instance 
report.endTest(logger); 
report.flush(); 

} 
+0

其實在我的測試中有太多的情況下,一個測試可能會失敗,所以我想去做這樣,我把'logger.log (LogStatus.PASS,「標題驗證」,圖片);'在每次測試結束時,假設如果測試未達到此代碼行,則失敗。 – LoveJavaTwo

+0

Noor的回答是正確的。 AfterMethod在每次測試後自動運行,不需要手動執行任何操作。讓測試框架決定狀態,並在AfterMethod中報告。你用什麼測試框架? – Karthik