Как передать сообщение об ошибке из метода, вызывающего исключение, в метод onTestFailure в Listener - PullRequest
1 голос
/ 12 апреля 2019

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

@Override
public void onTestFailure(ITestResult result) {
    String screenshotPath = "";
    try {
        screenshotPath = ScreenshotUtil.capture();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    try {
        test2.log(Status.FAIL, MarkupHelper.createLabel("Error occured", ExtentColor.RED));

        test2.addScreenCaptureFromPath(screenshotPath, "Error");
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

и я выкидываю исключение в следующем методе

public HomePage assertLoginSuccessful(boolean flag, String name) throws ExplicitAssertionError, IOException{
        waitForPageToLoad();
        WebDriverWait wait=new WebDriverWait(getDriver(), 5);
        String xpath="//a[@id='welcome'][contains(.,'Welcome "+name+"')]";
        try{
        wait.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.xpath(xpath)));
        if (flag){
                List<WebElement> list=getDriver().findElements(By.xpath(xpath));

                if (list.size()==0){
                    throw new ExplicitAssertionError("User name"+name+" not found hence login not successful");//this message should be passed to listener
                }
        }
        }catch (Exception ex){
            throw new ExplicitAssertionError("User name"+name+" not found hence login not successful");
        }
        return this;

1 Ответ

2 голосов
/ 12 апреля 2019

Интерфейс ITestResult содержит метод getThrowable для доступа к исключению, которое вы генерируете в своем тесте.

Вы можете добавить следующий код в onTestFailure:

    if (null != result.getThrowable()) {
      String msg = result.getThrowable().getMessage();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...