【问题标题】:How to combine reporting from multiple class files into 1 extent reporting test如何将来自多个类文件的报告合并到 1 个范围报告测试中
【发布时间】:2019-01-09 09:36:37
【问题描述】:

我正在寻找一种方法,将我在多个类中生成的报告合并到一个报告中的一个测试中。注意:我不打算合并报告,这是一个单独的问题。

我正在从包含我的个人测试用例的测试类运行 Web 服务自动化测试。从这里开始,测试方法(更具体的任务)与实际调用 Web 服务的“调用者”联系,然后返回对测试用例的响应。测试用例从那里验证响应。我是这样写的,所以我可以让许多测试在需要时使用一个调用者,而不是复制代码。

但是,我现在遇到的问题是我的报告 - 我想在我的测试方法的范围报告中创建一个测试,但我也希望我的调用者类将我的完整请求和响应等内容记录到同样的测试,所以我将所有信息集中在一个地方。

希望这是有道理的,如果有什么我可以澄清的,请告诉我。

【问题讨论】:

    标签: c# qa extentreports selenium-extent-report


    【解决方案1】:

    我最终找到了解决方案:

    以前,我的所有范围报告都是直接在我正在工作的班级中完成的。我改变了我的方法,并专门为我的报告创建了另一个班级。在本课程中,我将所需的各种范围报告功能分解为单独的方法。然后,从我的测试正在运行的任何类中,我初始化我的报告类并调用我需要的方法来创建一个干净的报告。例如:

    1. 测试类:
      • 报告。创建报告
      • 联系 Caller 类
    2. 调用者类:
      • Report.log 一些东西
    3. 测试类
      • report.end 报告

    最后我得到一份测试报告,报告中记录了我想要的两个类的所有内容。

    【讨论】:

      【解决方案2】:

      范围报告:3.1.5

      参考绑定语言:Java

      请参考 c# 绑定的语法。

      您必须创建公共静态变量,例如:

      public static ExtentHtmlReporter htmlReport;
      public static ExtentReports extentReport;
      public static ExtentTest testlog;
      

      仅在第一个类中启动报告,如果它的调用者类。将报告对象初始化为该对象。但是对象应该声明静态以将其用于不同的类。

      htmlReport = new ExtentHtmlReporter("reportName.html");
      extentReport = new ExtentReports();
      extentReport.attachReporter(htmlReport);
      
      testlog = extentReport.createTest("Test Method 1");
      Logs for that method, 
      

      要继续使用相同的报告,您需要继续使用相同的对象。 现在如果它的类不同,只需从创建不同的测试开始:

       testlog = extentReport.createTest("Test Method 2");
       Logs for that method, 
      

      等等,你可以在单一报告中实现。

      【讨论】:

      • 感谢 Ishita 的回复,但是,根据我的理解,我仍然会有 2 个不同的“测试”在这里(测试方法 1 和测试方法 2)。我希望从我的第一堂课中创建测试方法 1,并从我的另一堂课中将日志添加到该测试中。
      • @Staindz 这是可能的。如果您不创建另一个部分“extentReport.createTest”并且如果您继续直接将日志生成到第二类,它将通过第一部分本身的日志。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-21
      • 1970-01-01
      • 1970-01-01
      • 2010-10-18
      • 1970-01-01
      • 2019-03-19
      • 1970-01-01
      相关资源
      最近更新 更多