范围报告投掷关闭在测试可以使用EndTest安全结束之前调用

时间:2017-11-24 08:26:00

标签: selenium testng extentreports

当我尝试生成范围报告时,我收到此错误。 我已经使用reports.endTest(test);

关闭了报告

这是我的代码:

@BeforeMethod     public void beforeMethod(Method method){         test = reports.startTest((this.getClass()。getSimpleName()+“::”+ method.getName()),method.getName());         test.assignAuthor( “罗伊”);         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();
}

2 个答案:

答案 0 :(得分:0)

我只是复制并粘贴我使用我的项目的模板。希望您的问题将通过使用此解决

    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();

            }
        }

答案 1 :(得分:0)

删除//extent.startTest("TestCaseName“,” Description“);从您的代码中