簡體   English   中英

如何使用時間戳生成單獨的測試輸出文件夾?

[英]How to generate separate test-output folder with timestamp?

我正在使用 TestNG 來執行我的套件。 但是,每次運行后,測試輸出文件夾都會被覆蓋。 我想用時間戳生成一個單獨的測試輸出文件夾。 我正在使用 Maven 來構建項目。 有沒有辦法實現這一目標?

您可以使用自己的邏輯覆蓋默認報告器。 例如,使用SuiteHTMLReporter

public class MySuiteHTMLReporter extends SuiteHTMLReporter {
  @Override
  void generateReport(java.util.List<XmlSuite> xmlSuites,
                    java.util.List<ISuite> suites,
                    java.lang.String outputDirectory) {
    String timestamp = ...
    super.generateReport(xmlSuites, suites, outputDirectory + "-" + timestamp);
  }
}

你可以對其他記者做同樣的事情,不要忘記禁用它們(並啟用你的)。

您可以嘗試在您的測試中實現一個驅動程序(假設Driver.java ),它可用於啟動您的測試(測試執行的mainClass )。

這個類可以進一步有一個方法來解析testNG.xml文件來定義Test類,對於每個這樣的測試,你可以迭代執行以下語句塊 -

TestNG testNG = new TestNG();
// add listeners if needed
testNG.setCommandLineSuite(<yourXmlSuitePath>); // path to testNG.xml file
testNG.setOutputDirectory(<yourOutputDir>); // timestamped directory to specify
testNG.run();

或者另一種方法可能是在套件的@AfterAll方法中創建一個帶時間戳的文件夾(假設為 20170309),並使用maven-resources-plugin進行配置以將您的資源移動到創建的文件夾中。 這也可以以相反的方式完成,您可以在clean階段之前復制和移動先前的執行結果,並繼續執行測試以覆蓋現有報告。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM