2

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

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

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

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

4

2 回答 2

3

我最终能够找出我的解决方案:

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

  1. 测试类:
    • 报告.创建报告
    • 到达 Caller 类
  2. 调用者类:
    • Report.log 东西
  3. 测试班
    • 报告结束报告

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

于 2018-09-06T15:15:19.753 回答
1

范围报告: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, 

等等,您可以在单一报告中实现目标。

于 2018-08-07T05:17:06.047 回答