在@AfterMethod
中获取课程名称(TC_UI_PRM_N_001)
我只是使用this.getClassName().toString();
获取方法名称(permitsPageSaveWithEmptyMandatoryFields
)
我只使用result.getMethod().getMethodName().toString();
@AfterMethod(alwaysRun = true)
public void catchExceptions(ITestResult result) {
Calendar calendar = Calendar.getInstance();
SimpleDateFormat formater = new SimpleDateFormat("dd_MM_yyyy_hh_mm_ss");
String className = this.getClassName().toString();
String methodName = result.getMethod().getMethodName().toString();
...
}
如果步骤(内部方法)searchTextInPage(getTestCaseData(1))
失败,我怎样才能在@AfterMethod
中获取其名称?
public class TC_UI_PRM_N_001 extends BaseTestCase {
Login login;
HomePage homePage;
Permits permits;
@Test
public void permitsPageSaveWithEmptyMandatoryFields(){
login = new Login(getDriver());
login.verifyCorrectLogin();
homePage = new HomePage(getDriver());
homePage.clickMenuItem("Permits");
permits = new Permits(getDriver());
permits.addNewCertificate()
.validate()
.searchTextInPage(getTestCaseData(1));
}
}
答案 0 :(得分:1)
您的程序使用以下行正确返回方法名称:
(String methodName = result.getMethod().getMethodName().toString();).
您需要检索引发异常的方法中的特定行。一种简单的方法是通过Stacktrace找到它。
为了从Throwable中轻松地将堆栈跟踪检索为字符串,您可以使用类似的东西
String stackTrace = ExceptionUtils.getStackTrace(result.getThrowable());
来自Apache Commons。
然后,您将能够在程序中找到引发异常的特定点。