2016-10-24 15 views
2

私はSelenium Java Extent Reportsを使いこなしています。彼らの新しいバージョンは10月12日現在ではありませんが、私はendTestメソッドを見ていません。彼らはv3.0.0の完全なドキュメントをまだリリースしていません。ほとんどのものはほぼ同じ使用法ですが、endTestメソッドはもはや利用可能ではないようです。エクステントレポートレポート.endTest(テスト)メソッド?

複数のテストを同じレポートファイルに表示できるようにテストを終了する方法を知っている人はいますか?

report = ExtentFactory.getInstance(date, time); 
test = report.createTest("mytest"); 
test.log(Status.INFO, "test started"); 
// do some other stuff 
report.endTest(test); <-- this is no longer an option. 

誰かが新しいテスト方法を知っていますか?

私は見つけることができるすべては

report.close(); 

であるが、それは私が同じレポートに複数のテストを入れさせていないようです。

答えて

2

バージョン3はかなり異なっています。必要な記者を決定できるようになりました。

ExtentHtmlReporter htmlReporter = new ExtentHtmlReporter("filePath"); 
ExtentXReporter extentxReporter = new ExtentXReporter("host"); 

ExtentReports extent = new ExtentReports(); 
extent.attachReporter(htmlReporter, extentxReporter); 

個々のテストでは、もはや終了する必要がある、あなただけのイベントのロギングを心配する必要はありません:以下の例では、HTMLとExtentXの両方を使用しています。下記の起動およびレポートに2つのテストを追加します:結果ファイルへの書き込み

extent.createTest("Test1").pass("pass"); 
extent.createTest("Test2").error("error"); 

は前と同じである:あなたのテストランナーによっては

extent.flush(); 

(私が使用する方法を紹介しますTestNGの持つこと)、あなたが今(下記のアプローチは、マルチスレッドをサポート)のテストを作成し、以下のように彼らに情報を追加する必要があります。

public class ExtentTestNGReportBuilder { 

    private ThreadLocal<ExtentTest> parentTest; 
    private ThreadLocal<ExtentTest> test; 

    @BeforeClass 
    public synchronized void beforeClass() { 
     ExtentTest parent = ExtentTestManager.createTest(getClass().getName()); 
     parentTest.set(parent); 
    } 

    @BeforeMethod 
    public synchronized void beforeMethod(Method method) { 
     ExtentTest child = parentTest.get().createNode(method.getName()); 
     test.set(child); 
    } 

    @AfterMethod 
    public synchronized void afterMethod(ITestResult result) { 
     if (result.getStatus() == ITestResult.FAILURE) 
      test.get().fail(result.getThrowable()); 
     else if (result.getStatus() == ITestResult.SKIP) 
      test.get().skip(result.getThrowable()); 
     else 
      test.get().pass("Test passed"); 

     ExtentManager.getExtent().flush(); 
    } 

} 

上記はちょうどあなたのアイデアを与えることです、あなたは見つけることができますコード全体ここにベース:https://github.com/anshooarora/extentreports-java/issues/652#issuecomment-254078018

関連する問題