ExtentReport测试结束时间与开始时间相同

时间:2018-07-31 07:29:14

标签: selenium extentreports

我正在使用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());    

我正试图避免它,因为我需要将其添加到每个测试中,而且我有很多。 这是报告中的照片

enter image description here

1 个答案:

答案 0 :(得分:0)

您要在@BeforeClass@AfterClass中实例化您的扩展区测试,并且扩展区的测试实例仅被调用一次,这就是您拥有相同时间的原因。尝试在每次测试之前实例化您的扩展区测试,使其与驱动程序相同,而不是实例化。

使用@BeforeTest, @AfterTest / @ BeforeMethod, @AfterMethod,具体取决于您使用的测试框架。

希望这会有所帮助,