Как передать параметр в методе прослушивания TestNG - Selenium Java - PullRequest
0 голосов
/ 27 марта 2020

У меня есть следующий класс, который не работает или проходит на основе булевого значения, которое я предоставляю.

public class testLogin extends Base
{
  public static String requestBody;

  @Test
  public void executeTest()
  {
    System.out.println("Log in to Salesforce.");
    salesforceLogin(false);
  }

public void salesforceLogin(boolean status)
{
  if(status)
  {
    System.out.println("Test passed.");
  }
  else
  {
    System.out.println("Test failed.");
    Assert.fail();
  }
 }
}

Я использую слушатель TestNG для запуска по методу ниже:

@Override
public void onTestSuccess(ITestResult result) 
{
   VoneRest vo = PageFactory.initElements(driver, VoneRest.class);
   System.out.println("Test Success. Updating Vone status...");
   vo.updateVonePass();  //method to update test status in Vone.
}

Что я нужно что-то вроде этого:

@Override
public void onTestSuccess(ITestResult result, **String testID**) 
{
 VoneRest vo = PageFactory.initElements(driver, VoneRest.class);
 System.out.println("Test Success. Updating Vone status...");
 vo.updateVonePass(**testID**); 
 //method to update test status in Vone based on test id passed.
}

Эта программа выполняет тест TestNG и обновляет соответствующий статус теста в VersionOne как пройденный или неудачный.

Проблема заключается в том, что метод Listener onTestSuccess () не принимает второй параметр. Как мне этого добиться? Или есть лучший способ сделать это?

1 Ответ

0 голосов
/ 28 марта 2020

Нашел ответ сам после подключения разных идей, найденных в inte rnet. Публикация для кого-то, кому это может понадобиться в будущем.

Вы можете передать параметры в Listener с помощью ITestContext следующим образом:

@Test
public void executeTest(ITestContext Story,ITestContext Test)

Затем в своем классе слушателя вы можете ссылаться на обе понравившиеся переменные это:

@Override
public void onTestFailure(ITestResult result) 
{  
vo.updateVoneFail(result.getTestContext().getAttribute("testAttribute"),result.getTestContext().getAttribute("storyAttribute"));
}
...