Вы можете получить его в AfterMethod с помощью объекта ITestResult, если вещи не обрабатываются блоком try catch ().
Пример:
Тип исключения: java.lang.ArithmeticException: / от нуля
@Test
public void testDemo() {
int i;
i = 9 / 0;
}
@AfterMethod
public void afterMethod(ITestResult result) {
if (result.getStatus() == ITestResult.FAILURE) {
String testResult = result.getThrowable();
System.out.println(testResult);
}
}
Здесь метод testDemo получает сбой по арифметическому исключению, и поэтому в ITestResult есть метод сбоя. Используя метод result.getThrowable();
, вы можете получить описание исключения.
Но, если все обрабатывается блоком try-catch (), вы не можете получить подробности об исключении в AtferMethod.
@Test
public void testDemo() {
try {
int i;
i = 9 / 0;
} catch (Exception e) {
e.printStackTrace();
}
}
@AfterMethod
public void afterMethod(ITestResult result) {
if (result.getStatus() == ITestResult.FAILURE) {
String testResult = result.getThrowable();
System.out.println(testResult);
}
}
Здесь все обрабатывается блоком try-catch, и поэтому он не может потерпеть неудачу, метод Test становится успешным. Таким образом, в ITestResult не может быть сведений об исключении как сбой.