范围报告report.endTest(测试)方法?

我正在搞乱Selenium Java Extent Reports。 他们的新版本截止到10月12日,但我没有看到endTest方法。 他们尚未发布v3.0.0的完整文档。 大多数事情都是大致相同的用法,但endTest方法似乎不再可用。

有谁知道如何结束测试运行,以便可以在同一报告文件中显示多个测试?

report = ExtentFactory.getInstance(date, time); test = report.createTest("mytest"); test.log(Status.INFO, "test started"); // do some other stuff report.endTest(test); <-- this is no longer an option. 

任何人都知道结束测试的新方法是什么?

我能找到的只是

 report.close(); 

但这似乎并没有让我把多个测试放在同一个报告中。

版本3完全不同 – 您现在可以决定您需要哪些记者。 以下示例使用Html和ExtentX:

 ExtentHtmlReporter htmlReporter = new ExtentHtmlReporter("filePath"); ExtentXReporter extentxReporter = new ExtentXReporter("host"); ExtentReports extent = new ExtentReports(); extent.attachReporter(htmlReporter, extentxReporter); 

不再需要结束单个测试,您只需要担心记录事件。 下面将开始并在报告中添加2个测试:

 extent.createTest("Test1").pass("pass"); extent.createTest("Test2").error("error"); 

写入结果文件与以前相同:

 extent.flush(); 

根据您的测试运行器(我将展示如何在TestNG中使用它),您现在必须创建测试并向其添加信息,如下所示(以下方法支持multithreading):

 public class ExtentTestNGReportBuilder { private ThreadLocal parentTest; private ThreadLocal test; @BeforeClass public synchronized void beforeClass() { ExtentTest parent = ExtentTestManager.createTest(getClass().getName()); parentTest.set(parent); } @BeforeMethod public synchronized void beforeMethod(Method method) { ExtentTest child = parentTest.get().createNode(method.getName()); test.set(child); } @AfterMethod public synchronized void afterMethod(ITestResult result) { if (result.getStatus() == ITestResult.FAILURE) test.get().fail(result.getThrowable()); else if (result.getStatus() == ITestResult.SKIP) test.get().skip(result.getThrowable()); else test.get().pass("Test passed"); ExtentManager.getExtent().flush(); } } 

以上只是为了给你一个想法,你可以在这里找到整个代码库: https : //github.com/anshooarora/extentreports-java/issues/652#issuecomment-254078018

Interesting Posts