我正在使用extentreports生成一个html报告文件,并且每个测试的开始和结束时间都相同,而且我不知道自己在做什么错。
import com.relevantcodes.extentreports.ExtentReports;
import com.relevantcodes.extentreports.ExtentTest;
public static ExtentReports extent;
public static ExtentTest extentTest;
extent = new ExtentReports("" + projectDirectoryPath + "junit_debug_report\\"+ browser+ "\\" + date + "extentReportFile.html", false);
@BeforeClass
public static void a_logIn() throws Exception {
extentTest = extent.startTest("Interactions tests",
"Interactions tests").assignCategory("CP","account", "Interactions");
System.out.println("Interactions tests");
String testStr = "login";
try {
....
extentTest.log(LogStatus.PASS, testStr);
}catch (Exception e){
reportError(e.toString());
}
}
@AfterClass
public static void b_logout() throws Exception {
String testStr ="logout";
try{
....
extentTest.log(LogStatus.PASS, testStr);
extent.endTest(extentTest);
}catch (Exception e){
reportError( e.toString() );
}
}
我需要以此手动更新结束时间吗?
extentTest.setEndedTime(new Date());
我正试图避免它,因为我需要将其添加到每个测试中,而且我有很多。 这是报告中的照片
答案 0 :(得分:0)
您要在@BeforeClass
和@AfterClass
中实例化您的扩展区测试,并且扩展区的测试实例仅被调用一次,这就是您拥有相同时间的原因。尝试在每次测试之前实例化您的扩展区测试,使其与驱动程序相同,而不是实例化。
使用@BeforeTest, @AfterTest
/ @ BeforeMethod, @AfterMethod
,具体取决于您使用的测试框架。
希望这会有所帮助,