2

Selenium Java Extent Reports をいじっています。新しいバージョンは 10 月 12 日にリリースされましたが、endTest メソッドが表示されません。v3.0.0 の完全なドキュメントはまだリリースされていません。ほとんどすべての使用法はほぼ同じですが、 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();

しかし、それでは複数のテストを同じレポートに入れることができないようです。

4

1 に答える 1

3

バージョン 3 はまったく異なります。必要なレポーターを決定できるようになりました。次の例では、Html と ExtentX の両方を使用しています。

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

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

個々のテストを終了する必要はなくなり、イベントのログ記録についてのみ心配する必要があります。以下は、レポートに 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

于 2016-10-25T01:00:02.360 に答える