2016-03-23 5 views
0

が結果をレポートに追加するExtentReportに2クラスの結果を追加することができませんでしたが、私は第二のクラスを実行するとレポートは、ファーストクラスの結果を保持しませんは私が最初のクラスを実行すると

// SimpleReportFactory {

package Rapport; 

import com.relevantcodes.extentreports.DisplayOrder; 
import com.relevantcodes.extentreports.ExtentReports; 

public class SimpleReportFactory { 

private static ExtentReports reporter; 

public static synchronized ExtentReports getReporter() { 
    if (reporter == null) { 
     reporter = new ExtentReports("/Users/user/Desktop/untitled folder/SimpleReport3.html", true, DisplayOrder.NEWEST_FIRST); 
    } 
    return reporter; 
} 

public static synchronized void closeReporter() { 
    reporter.flush(); 
    reporter.close(); 
} 
} 

//ファーストクラスTest001

package Rapport; 

import org.testng.annotations.AfterSuite; 
import org.testng.annotations.Test; 

import com.relevantcodes.extentreports.ExtentReports; 
import com.relevantcodes.extentreports.ExtentTest; 
import com.relevantcodes.extentreports.LogStatus; 

public class Test001 { 

private ExtentReports reporter = SimpleReportFactory.getReporter(); 



@Test 
public void simpleTest002() 
{ 
    ExtentTest testReporter = reporter.startTest("simpleTest002", "This is a simple simpleTest002"); 
    testReporter.log(LogStatus.INFO, "Starting test simpleTest002"); 
    int a = 100; 
    int b = 30; 

    testReporter.log(LogStatus.INFO, "Loading the value of a to " + a); 
    testReporter.log(LogStatus.PASS, "Loading the value of b to " + b); 
    reporter.endTest(testReporter); 

} 

@AfterSuite 
public void afterSuite() 
{ 
    reporter.close(); 
} 
} 

//第二クラスTest002

package Rapport; 

import org.testng.annotations.AfterSuite; 
import org.testng.annotations.Test; 

import com.relevantcodes.extentreports.ExtentReports; 
import com.relevantcodes.extentreports.ExtentTest; 
import com.relevantcodes.extentreports.LogStatus; 

public class Test002 { 

private ExtentReports reporter = SimpleReportFactory.getReporter(); 


@Test 
public void simpleTest004() 
{ 
    ExtentTest testReporter = reporter.startTest("simpleTest004", "This is a simple simpleTest004"); 
    testReporter.log(LogStatus.INFO, "Starting test simpleTest004"); 
    int a = 100; 
    int b = 30; 

    testReporter.log(LogStatus.INFO, "Loading the value of a to " + a); 
    testReporter.log(LogStatus.PASS, "Loading the value of b to " + b); 
    reporter.endTest(testReporter); 

} 

@AfterSuite 
public void afterSuite() 
{ 
    reporter.close(); 
} 
+1

前回の実行結果はどのように保持されますか?あなたは毎回新しいインスタンスを作成しています! – user2004685

+0

あなたはテストケースの実行順序に依存しているとは思わない –

+0

新しいインスタンスを作成せずに結果を追加するにはどうすればよいですか? – joe

答えて

1

あなたは二回

private ExtentReports reporter = SimpleReportFactory.getReporter(); 

を使用しているため、

エクステントレポートの場合、ExtentReportインスタンスを2回使用すると、最初のインスタンスの詳細がクリアされるのではなく、最後のインスタンスのみが表示され、2番目のインスタンスの結果のみが表示されます。

したがって、Extentレポートを1回だけ開始し、このインスタンスをテストサイクル全体に使用するようにしてください。グローバルおよび静的およびこの

reporter instance to the whole test cycle. 

を使用するよりも

ExtentReports reporter 

を作るインスタンスは、テスト実行の最後に、レポーターインスタンスを閉じます。

+0

私はfalseでtrueを変更しました。reporter = new ExtentReports( "/ Users/user/Desktop/untitled folder/SimpleReport3.html"、true、DisplayOrder.NEWEST_FIRST); – joe

+0

あなたの助けに感謝します – joe

+0

これは良いアプローチではありません。 noor – Karthik

関連する問題