2016-03-03 109 views
-1

我正在自動化一個網站,並且我正在使用軟斷言來失敗我的測試用例。但是現在我得到了在特定情況下失敗的測試方法之後出現的所有測試方法的失敗報告。下面給出的示例代碼SoftAssert在調用SoftAssertobj.assertAll()函數後失敗所有測試方法

//Function Call 

    commFunction.backnavigation(driver, props,"Item",ExcelResult_Field, className,"CustomerPricing"); 

//Function Declaration 

    public void backnavigation(WebDriver driver, Properties props, 
      String MenuName, boolean TestStatus, String className, 
      String MethodName) throws InterruptedException, 
      EncryptedDocumentException, InvalidFormatException, IOException { 



     Boolean bool_backButton = ValidationHelper.isElementPresent(driver, 
       By.xpath(LocatorModule(props, "BackNavigationButton"))); 

     if (bool_backButton.equals(true)) { 
      ExecutionHelper.ElementTobeClicked_Xpath(driver, 
        By.xpath(LocatorModule(props, "BackNavigationButton"))); 

      ListClassView = ExecutionHelper 
        .waitForElementVisible(
          driver, 
          By.xpath("//ul[@id='settings_menu']//li/a[text()='" 
            + MenuName 
            + "']/ancestor::li/following-sibling::li[1]/ul/li")); 

      if (ListClassView.equals(true)) { 
       writeResulttoExcel(TestStatus, className, 
         MethodName); 
        if(TestStatus!=true) 
        { 
         // softAssert.assertEquals(false, true,"TEST STATUS Fail--assert fail"); 
         softAssert.fail("TEST STATUS Fail--assert fail"); 
        } 
      } 

      else { 
       Thread.sleep(3000); 
       driver.findElement(
         By.xpath(".//*[@id='settings_menu']/li[@class='left width_fluid']/a[text()='" 
           + MenuName + "']")).click(); 
       writeResulttoExcel(false, className, MethodName); 
       //softAssert.assertEquals(false, true,"ListClassView FALSE--assert fail"); 
        softAssert.fail("ListClassView FALSE--assert fail"); 
       Thread.sleep(2000); 
      } 

      Thread.sleep(3000); 
     } 

     else { 
      driver.navigate().back(); 
      Boolean ListClassView = ExecutionHelper 
        .waitForElementVisible(
          driver, 
          By.xpath("//ul[@id='settings_menu']//li/a[text()='" 
            + MenuName 
            + "']/ancestor::li/following-sibling::li[1]/ul/li")); 
      if (ListClassView.equals(true)) 
      { 
       writeResulttoExcel(false, className, MethodName); 
       // softAssert.assertEquals(false, true,"BACK BUTTON FALSE LIST VIEW AVAILABLE--assert fail"); 

        softAssert.fail("BACK BUTTON FALSE LIST VIEW AVAILABLE--assert fail"); 

      } 

      else { 
       Thread.sleep(3000); 
       driver.findElement(
         By.xpath(".//*[@id='settings_menu']/li[@class='left width_fluid']/a[text()='" 
           + MenuName + "']")).click(); 
       writeResulttoExcel(false, className, MethodName); 
      // softAssert.assertEquals(false, true,"BACK BUTTON FALSE LIST VIEW NOT AVAILABLE--assert fail"); 
       softAssert.fail("BACK BUTTON FALSE LIST VIEW NOT AVAILABLE--assert fail"); 

      } 

      Thread.sleep(3000); 
     } 
     softAssert.assertAll(); 
    } 

以下方法1應以我的實際場景中失敗,方法2應該通過。但是在調用softAssert.assertAll()之後;方法1 & 2失敗。爲該場景附加TestNG報告。測試在客戶定價失敗後,報告顯示所有測試方法都失敗了。應該應用哪種更改來解決此問題。

TestNG Report Image File

+0

粘貼你的實際代碼。如果你正在調用相同的函數,那麼兩者都會失敗。也asserttrue只需要一個參數.. –

+0

@niharika_neo更新了實際的代碼。請看看那個 – Baburaj

回答

0

哪裏是在提供的代碼你@Test方法?你在@Test中調用你預定義的backnavigation方法嗎?你在哪裏創建了softAssert對象?下面的簡單例子會幫助你。

public class SoftAsert 
{ 
@Test 
public void test() 
{ 
    SoftAssert asert=new SoftAssert(); 
    asert.assertEquals(false, true,"failed"); 
    asert.assertEquals(0, 1,"brokedown"); 
    asert.assertAll(); 
} 
} 

請發起@Test它的自我和@Test結尾使用assertAll,使其將只提供特定的試驗失敗的詳細信息,SoftAssert對象。

謝謝, Murali

相關問題