2017-03-08 10 views
1

私はスイートを実行するためにTestNGを使用しています。ただし、各実行後にテスト出力フォルダが上書きされます。私はタイムスタンプ付きの別のテスト出力フォルダを生成したい。私はMavenを使ってプロジェクトをビルドしています。これを達成する方法はありますか?タイムスタンプ付きの個別のテスト出力フォルダを生成する方法は?

+0

タイムスタンプ付きの個別のテスト出力フォルダを生成したいのはなぜですか? より重複したファイルが作成されます。タイムスタンプ付きのレポートファイルをemailableにしないでください。 –

答えて

0

デフォルトのレポーターを独自のロジックで上書きすることができます。例えば、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); 
    } 
} 

あなたは他の人の記者のために同じことを行うことができますし、それらを無効に(とあなたを有効化)することを忘れないでください。

0

テストを開始するために使用できるドライバ(Driver.javaと言う)を試してみてください(テスト実行のmainClass)。

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(); 

またはその他の -

このクラスは、さらにTestクラスを定義するtestNG.xmlファイルを解析する方法を持つことができ、それぞれのそのようなテストのために、あなたは、次の文のブロックを実行するために繰り返すことができますアプローチは、スイートの@AfterAllメソッドにタイムスタンプ付きフォルダ(20170309と仮定)を作成し、maven-resources-pluginを使用してリソースを作成済みフォルダに移動するように設定することができます。これは、他の方法でも実行できます。cleanフェーズ前に以前の実行結果をコピーして移動し、既存のレポートを上書きするテストの実行を続けます。

関連する問題