[英]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.