如何将导致异常的方法的错误消息传递给 Listener 中的 onTestFailure 方法
How to pass error message from method causing exception to onTestFailure method in Listener
我正在尝试从导致 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;
接口 ITestResult
包含一个方法 getThrowable
来访问您在测试中抛出的异常。
您可以将以下代码添加到onTestFailure
:
if (null != result.getThrowable()) {
String msg = result.getThrowable().getMessage();
}
我正在尝试从导致 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;
接口 ITestResult
包含一个方法 getThrowable
来访问您在测试中抛出的异常。
您可以将以下代码添加到onTestFailure
:
if (null != result.getThrowable()) {
String msg = result.getThrowable().getMessage();
}