s12
s12

Reputation: 23

Extent report is throwing Close was called before test could end safely using EndTest

I am getting this error when I am trying to generate extent report. I have closed the report already with reports.endTest(test);

Here is my code:

@BeforeMethod public void beforeMethod(Method method) { test = reports.startTest((this.getClass().getSimpleName() + "::" + method.getName()), method.getName()); test.assignAuthor("Roy"); test.assignCategory("SMOKE TEST"); }

@Test(priority = 0)
public static void initialSetup() throws InterruptedException, IOException {
    System.setProperty("webdriver.ie.driver", "\\IEDriverServer.exe");
    b = new InternetExplorerDriver();

    b.get("https://something.com");
    Alert alert = b.switchTo().alert();

    String _user_name = "kirstie";
    String _password = "88525";
    alert.authenticateUsing(new UserAndPassword(_user_name, _password));
    b.switchTo().defaultContent();

}

@Test(priority = 1, enabled = true)
public static void secondClient() throws Exception {

    b.findElement(By.xpath("//*[@class='main-sidebar open']")).click();

    b.findElement(By.xpath("//*[@class='sub-menu group open']/li")).click();

}

@AfterMethod
public void afterMethod(ITestResult iTestResult) throws IOException {

    if (iTestResult.getStatus() == ITestResult.FAILURE) {
        String screenshotPath = GetScreenshot.capture(driver, "screenShots");
        test.log(LogStatus.FAIL, "Screenshot", test.addScreenCapture(screenshotPath));
        test.log(LogStatus.FAIL, "Test Case Failed is " + iTestResult.getName());
        test.log(LogStatus.FAIL, "Test Case Failed is " + iTestResult.getThrowable());
    } else if (iTestResult.getStatus() == ITestResult.SKIP) {
        test.log(LogStatus.SKIP, "Test Case Skipped is " + iTestResult.getName());
    }
    reports.endTest(test);
}

@AfterSuite
public void afterSuite() {

    reports.flush();
    reports.close();
}

Upvotes: 2

Views: 4667

Answers (2)

raman rayat
raman rayat

Reputation: 414

Remove //extent.startTest("TestCaseName", "Description"); from your code

Upvotes: 0

Zakaria Shahed
Zakaria Shahed

Reputation: 2697

I just Copy and paste the template which I used my project.Hope Your Problem will be solved by using this

    WebDriver driver;
    ExtentHtmlReporter htmlReporter;
    ExtentReports extent;
    ExtentTest test;



            @BeforeTest
            public void setUp() {
                // where we need to generate the report

                htmlReporter = new ExtentHtmlReporter("Your report Path");
                extent = new ExtentReports();
                extent.attachReporter(htmlReporter);
                // Set our document title, theme etc..
                htmlReporter.config().setDocumentTitle("Rentalhomes");
                htmlReporter.config().setReportName("Rentalhomes Production Testing");
                htmlReporter.config().setTestViewChartLocation(ChartLocation.TOP);
                htmlReporter.config().setTheme(Theme.DARK);


                            }
           }
            @Test
            public void HomepageLogo() throws Exception {
                test = extent.createTest("rentalhomesHomePage");
                //Your Test

            }

          @AfterMethod
          public void setTestResult(ITestResult result) throws IOException {


              if (result.getStatus() == ITestResult.FAILURE) {
                  test.log(Status.FAIL, result.getName());
                  test.log(Status.FAIL,result.getThrowable());
                  //test.fail("Screen Shot : " + test.addScreenCaptureFromPath(screenShot));
              } else if (result.getStatus() == ITestResult.SUCCESS) {
                  test.log(Status.PASS, result.getName());
                  //test.pass("Screen Shot : " + test.addScreenCaptureFromPath(screenShot));
              } else if (result.getStatus() == ITestResult.SKIP) {
                  test.skip("Test Case : " + result.getName() + " has been skipped");
              }

              extent.flush();
          driver.close();

            }
        }

Upvotes: 1

Related Questions