生成testng报告而不覆盖以前的测试输出结果?

时间:2016-06-23 09:02:40

标签: maven report testng

我正在使用java的selenium-webdriver。我正在使用testNG,执行后我得到了默认报告。但是一旦我重新运行套件,之前的结果就会被写完。

我们可以生成testng报告而不会覆盖以前的测试输出结果吗?

我们需要任何构建工具吗?如果是,如何用maven做?

2 个答案:

答案 0 :(得分:0)

是的,您可以在不覆盖之前生成报告。

要实现它,您需要参数化报告输出目录。

我不知道如何使用纯TestNG进行操作,但使用maven-surefire-plugin非常简单:

<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
            <suiteXmlFiles>
                <suiteXmlFile>testng-suite.xml</suiteXmlFile>
            </suiteXmlFiles>
            <reportsDirectory>report_${maven.build.timestamp}</reportsDirectory>
        </configuration>
    </plugin>
</plugins>

这将使用当前时间戳作为唯一后缀为每次运行创建单独的目录。

答案 1 :(得分:0)

如果您有存储报告的目录的路径,并希望保留过去的报告以供将来参考,则可以为报告的名称添加时间戳

   Calendar cal = Calendar.getInstance();   
   Date time=cal.getTime();
   String timestamp=time.toString();
   String systime=timestamp.replace(":", "-");
   int year = cal.get(Calendar.YEAR);
   int month = (cal.get(Calendar.MONTH)+1);
   int day = cal.get(Calendar.DAY_OF_MONTH);



   public void generateReport  (List<XmlSuite> xmlSuites, List<ISuite> suites, String outputDirectory) {
    extent = new ExtentReports("C:\\XAMPP\\htdocs\\TestReports\\TestReport" + " " + systime + "_" + Constants.U360_VERSION +".html");