2014-12-04 39 views

回答

0

SuiteHTMLReporter [source]是创建html报告的记者。您可以扩展并覆盖。禁用默认侦听器并添加您自己的。

+0

我必须扩展这个类吗? – Student 2014-12-04 15:39:42

+0

如果你可以给我一个小例子,它会很棒。 – Student 2014-12-04 16:00:37

0

我知道这是旧的,但这些报告可以编辑和自定义报告可以如下所示。我已经解释hereTestHTMLReporter如何可以编辑

与您customReport你不得不实施IReporter,延长TestListenerAdapter并覆盖generateReport方法,如果你想实现一个自定义TestHTMLReporter。对于其他记者来说,你可能不得不做点事情,但这个概念将保持不变。你可以像下面那样实现自定义的'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 现在,在此文件中根据您的要求更改。对于例如:如果你想在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(")"); 

     } 

然后你会得到像下面

enter image description here

现在,您将得到两份报告,一份使用默认值,另一份使用您的文件名。 现在唯一保留的是关闭默认报告监听器,因此您只能获得一个报告。为此,您可以按照this或者您可以搜索解决方案。希望这有助于