2016-03-03 1 views
-1

Я автоматизирую веб-сайт, и я использую soft assert для отказа от тестирования. Но теперь я получаю отчеты об ошибках для всех тестовых методов, которые возникают после метода тестирования, который не удалось выполнить в конкретном сценарии. Ниже приведен пример кода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 метод в предусмотренном коде? вы называете свой предопределенный метод backnavigation в @Test? Где вы создали объект softAssert? ниже простого примера поможет вам.

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

Пожалуйста, инициируют объект SoftAssert в @Test он сам и на конце @Test использовать assertAll, так что она обеспечит детали отказов только конкретного теста.

Спасибо, Murali

Смежные вопросы