我正在使用java的selenium-webdriver。我正在使用testNG,执行后我得到了默认报告。但是一旦我重新运行套件,之前的结果就会被写完。
我们可以生成testng报告而不会覆盖以前的测试输出结果吗?
我们需要任何构建工具吗?如果是,如何用maven做?
答案 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");