当前位置: 首页 > 知识库问答 >
问题:

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

龙博
2023-03-14

我在弄硒Java程度报告。他们的新版本将于10月12日发布,但我没有看到最终测试方法。他们还没有发布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();

但这似乎不允许我将多个测试放在同一个报告中。

共有1个答案

夹谷沛
2023-03-14

第三版完全不同——你现在可以决定你需要哪些记者了。以下示例同时使用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一起使用),您现在必须创建测试并向其添加以下信息(以下方法支持多线程):

public class ExtentTestNGReportBuilder {

    private ThreadLocal<ExtentTest> parentTest;
    private ThreadLocal<ExtentTest> 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

 类似资料:
  • 我正在从事一个基于Selenium/testng/java/gradle的项目,该项目采用了针对webdriver和extenttest对象的ThreadLocal方法。每当我的测试用例失败时,我都会使用RetryListener再次运行失败的测试用例1次。若它是第二次通过,我的结果仍然在扩展报告中显示为“失败”(注意,所有迭代都记录在html报告中的单个测试节点中)。stackoverflow对

  • 我有一个有多个方法的TestNG测试。范围报告在主类中有效,但当我尝试为其他方法编写日志时,我得到了空指针异常。所有教程都指向在主方法中编写日志,但没有指向其他方法。我已经努力寻找解决方案一个星期了。有人能帮我吗?谢谢 我的代码是这样的 以下内容写在主测试中 我的完整代码在这里

  • 我试图用ExtentReport和TestNG执行我的基本项目测试,但当我执行2个类时,ExtentTestManager中的“categoryName”。java由第二个测试填充,而第一个测试没有运行。我尝试实现一个LocalThread来完成这项任务,但我无法实现。。。 扩展测试管理器.java 范围曼安格.java 测试侦听器.java SearchInGoogleTest.java Tes

  • 22.13.7.测试报告 测试任务默认生成以下结果. 一份HTML测试报告 一个与Ant的JUnit测试报告任务兼容的XML.这个格式与许多其他服务兼容,如CI serves 结果是有效的二进制,测试任务会从这些二进制结果生成其他结果。 有一个独立的TestReport任务类型会根据一些Test任务实例生成的二进制源码生成一个HTML报告.使用这种测试类型,需要定义一个destinationDir

  • 当运行单元测试的时候,Gradle 会输出一份 HTML 格式的报告以方便查看结果。Android plugin 则将所有连接设备的测试报告都合并到一个 HTML 格式的报告文件中。所有测试结果都以 XML 文件形式保存到 build/reports/androidTests/ 中(类似于 JUnit 的运行结果保存在 build/reports/tests 中)。可以自定义路径: android

  • 5.4 测试报告 当运行单元测试的时候,Gradle 会生成一份 HTML 报告以便于查看测试结果。 Android plugins 在这个基础上扩展了 HTML 报告,以合并所有已连接设备上的测试结果。 5.4.1 单工程报告 在运行测试的时候工程会自动的生成报告,默认位置是: build/reports/androidTests 这和 jUnit 报告的位置 build/reports/tes

  • 22.13.7.1.TestNG 的参数化方法和报告 TestNG支持参数化方法,允许一个特定的测试方法使用不同的输入被执行多次。Gradle会在测试报告中包含该方法的参数值. 给出一个叫aTestMethod的测试方法,该方法有两个参数,在测试报告中会根据名字报告:aTestMethod(toStringValueOfParam1, toStringValueOfParam2). 这很容易识别的

  • 在一个配置了多个应用项目和多个 Library 项目的多项目里,当同时运行所有测试的时候,测试结果整合到一份测试报告中可能是非常有用的。 为了实现这个目的,需要在同一个配置中添加另一个插件。可以通过以下方式添加: buildscript { repositories { jcenter() } dependencies { classpath