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

Dataprovider如何将测试数据发布到HTML报表中

安聪
2023-03-14
     @Retention(RetentionPolicy.RUNTIME)
     @Target({ ElementType.METHOD })
     public @interface Greet {
        /**
         * @return - The name of the person to greet.
         */
        String name() default "";
}
  public class TestCase1 {
    @Test
    @DataPublish(name="First Test method_1")
    public static void test1() throws Exception {
       try {
            Assert.assertTrue(true);
           } 
       catch (Exception ex) {
            ex.printStackTrace();
        }
    }

我想在testNG默认HTML报告中打印注释值。

共有1个答案

谢和颂
2023-03-14

您的dataprovider可以向任何类或方法提供数据,我相信有这样的示例。您可以在下面的类中添加您的数据。我已经在下面解释了自定义报告部分。

如果要实现自定义的TesthTMLReporter,则必须使用IReporter、扩展TestListenerAdapter和重写GenerateReport方法。对于其他记者,你可能不得不做一些不同的事情,但概念将保持不变。您将实现如下所示的自定义'TesthtMLReporter'。

在项目中创建CustomReport.java文件,并复制粘贴TesthtmlReporter.java的全部内容,在GetOutputFile方法中更改文件名,如下所示

public class CustomReport  extends TestListenerAdapter implements IReporter {

     @Override
        public void generateReport(List<XmlSuite> xmlSuites, List<ISuite> suites,
                                   String outputDirectory) {

        }
   ...
   //paste the content of TestHTMLReporter.java here
   ...
   ...

现在请确保从TesthtmlReporter.java中导入的所有内容都已到位,在此文件中根据您的需求进行更改。对于ex:,如果您想添加每个测试的结束时间,那么在generateTable方法中的正确位置添加以下代码段

// Test class
      String testClass = tr.getTestClass().getName();
       long testMillis = tr.getEndMillis();
        String testMillisString = Long.toString(testMillis);
      if (testClass != null) {
        pw.append("<br>").append("Test class Name: ").append(testClass);

         // this line to add end time in ms
        pw.append("<br>").append("End Time(ms): ").append(testMillisString); 
        // Test name
        String testName = tr.getTestName();
        if (testName != null) {
          pw.append(" (").append(testName).append(")");

        }   

然后你就会像下面这样

现在,您将得到两个报告,一个是默认的,另一个是您的文件名。现在唯一剩下的就是关闭默认的报告监听器,这样您就只能得到一个报告。为此,您可以遵循这一点,或者您可以搜索解决方案。希望这能有所帮助

 类似资料:
  • 如何将报表从jasper studio发布到jasper服务器? 我将只发布主报告还是包括子报告?

  • 问题内容: 是否可以将数据发布到JsonP?还是所有数据都必须作为GET请求传递到查询字符串中? 我有很多数据需要跨域发送到服务,并且太大,无法通过查询字符串发送 解决这个问题有哪些选择? 问题答案: 由于同一个原始策略的(相当明智的)限制,因此无法与另一个域上的服务进行异步。JSON- P之所以起作用,是因为允许您将标签插入DOM,并且它们可以指向任何地方。 当然,您可以使用常规形式的POST来

  • 我需要您的帮助,将csv数据源传递给subReports。 我将非常感谢您的建议或解决方案。 我使用的是iReport 5.0专业版。 我有一个非常复杂的报告,该报告从多个(大约10个)csv文件中获取数据。 我已经为报告的每个部分创建了子报告,每个子报告作为一个单独的报告运行良好。 但是当我尝试将所有子报表集成到主报表中时,我无法将数据源传递给子报表。 在Main报告中,我创建了一个名为CSVD

  • 问题内容: 我希望将原始的发布数据(例如,未参数化的JSON)发送到我的一个控制器进行测试: 但这给我一个symbolize_keys’ for 用什么发送原始帖子数据的正确方法是什么? 这是一些控制器代码: 问题答案: 我今天遇到了同一问题,找到了解决方案。 在您的内部定义以下方法: 在功能测试中,与方法一样使用它,但将原始文章正文作为第三个参数传递。 我在Rails 2.3.4上使用读取原始文

  • 我已经创建了表的结构,在第2页中,源数据是一个JSON,包含产品及其属性列表。我想将JSON数据显示到表中,实际上有一个包含表的子报表,但不知道如何将JSON数据传递到子报表,并根据JSON数据中的productList键进行填充。报告从接收用户数据的java类填充。 我不知道如何填写第 2 页的表格,有人可以帮助我吗? 这是我在Jaspersoft Studio 6.10中的代码 主报告 子报表

  • 我的问题是: “数据提供者”如何在内部将数据发送到测试? 幕后到底发生了什么,以便我们在“测试”中获得发送的数据?。 我很想知道,数据提供者和测试是如何通过提及“数据提供者”的名称而相互连接的,“数据提供者”将数据发送给测试的。 “数据提供者”是否调用测试并将数据作为参数传递? 我的数据提供者代码: 我的测试代码: