我想在Extent报告中的Selenium测试中的每个步骤之后记录注释。因此,当在步骤中抛出异常时,我想捕获堆栈跟踪并将其打印在范围报告上。我在网上找不到任何帮助。有没有人试过这个并找到了办法?
例如,下面创建报告的实例并记录注释
// new instance
ExtentReports extent = new ExtentReports(file-path, replaceExisting);
// starting test
ExtentTest test = extent.startTest("Test Name", "Sample description");
// step log
test.log(LogStatus.INFO, "Click on the object");
Reference:
http://extentreports.relevantcodes.com/java/version2/docs.html#initialize-report
如果要记录异常的堆栈跟踪,可以将Exception堆栈跟踪转换为String。该课程可在Apache commons-lang-3.3.4 jar ExceptionUtils.getStackTrace(e)
获得
简单的例子
try{
int num[]={1,2,3,4};
System.out.println(num[5]);
}catch(Exception e){
test.log(LogStatus.INFO/ERROR, ExceptionUtils.getStackTrace(e));
}
希望这有助于你...如果您有任何疑问,请回来
或者你可以干脆做
catch (Exception e) {
test.log(LogStatus.FAIL, e);
}
由于不推荐使用ExceptionUtils
test.log(LogStatus.INFO/ERROR, ExceptionUtils.getStackTrace()); ->this won't help
所以我们可以使用
test.log(Status.INFO, "StackTrace Result: " + Thread.currentThread().getStackTrace());