2016-10-24 19 views
2

나는 Selenium Java Extent Reports를 사용하고있다. 그들의 새 버전은 10 월 12 일 현재로 끝났지 만 endTest 메소드가 보이지 않습니다. 그들은 아직 v3.0.0에 대한 전체 설명서를 공개하지 않았습니다. 거의 모든 것이 동일한 용도에 관한 것이지만 endTest 메서드는 더 이상 사용할 수없는 것 같습니다.범위 보고서 report.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 모두 사용합니다. 아래 시작하고 보고서에이 개 테스트를 추가합니다 :

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

결과 파일에 쓰는 것은 이전과 동일 :

extent.flush(); 

테스트 주자에 따라 (내가 사용하는 방법을 보여줍니다 위의

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

} 

을 당신에게 아이디어를주고, 당신이 찾을 수 있습니다 : TestNG를 가진이) 지금 테스트를 만들 때, 아래로 정보를 추가해야합니다 (아래의 접근 방식) 멀티 스레딩 지원 전체 코드 여기에 자료 : https://github.com/anshooarora/extentreports-java/issues/652#issuecomment-254078018