2011-03-25 3 views
1

HTML testNG 보고서를 생성하고 싶습니다. 기본적으로 우리는 "emailable-reports"라는 testNG를 실행 한 후에 보고서 파일을 가지고 있습니다. 하지만 이제는 내 자신의 HTML 보고서를 만들고 싶습니다. 내가 ITestListener 및 ITestReport.But 비록 내가 그 일을하지 않는 그 메서드를 재정의 사용하려고했습니다. 나는 그 방법을 사용하는 방법과 장소를 모르겠다. 두 가지 테스트 케이스가 있습니다. 그래서 지금 IReporter 인터페이스의 구현이 스위트 한 후 보고서를 생성하도록하는 동안 내가 documentationHTML TestNG 보고서 생성

답변

1

ITestListener 인터페이스의 구현은 실시간보고를 위해 설계되었습니다 ... 보고서를 생성하는 코드를 넣어야 할 경우 실행이 끝났습니다.

IReporter 및 generateReport(List<ISuite> suites, String outputDirectory) 메서드의 인스턴스를 구현하면 테스트 결과를보고 HTML 보고서를 만들 수 있습니다.

+0

그것은 올바른 방법으로 보고서를 생성합니다. 감사합니다. –

+1

보고서를 생성 할 수있는 몇 가지 예를 들어 주시겠습니까?나는 보고서를 생성하려했으나 오류가 발생했습니다. –

+0

@Kalpana : 위의 질문에 대한 오류에 대한 자세한 정보를 추가하여 도움을 주실 수 있습니다. – Feanor

1

@Feanor - 우리는 여기에 문제가 당신의 implementataion

################ 
    Implementing an instance of IReporter and the generateReport(List<ISuite> suites, String outputDirectory) 
################# 

당으로. 우리가 "CustomReporter」라고 Ireporter의 인스턴스로 구현 또한 기본 TestNG를 보고서로 돌아갑니다 또한 Ireporter를 구현 EmailableReport을 호출 할이 TestNG를 한 후 XML 파일

에 리스너를 추가하여 호출되는있는 generateReport를 오버라이드 (override) 한 가정

0

나는이 오래된 스레드 알지만, TestHTMLReporter을 사용자 정의하는 방법 here 설명하고 여기있다 :와

당신의 customReport 당신은 IReporter을 구현 TestListenerAdapter를 확장하고 원하는 경우 generateReport 메소드를 오버라이드 (override) 할 것 정의 TestHTMLReporter을 구현합니다. 다른 기자들에게는 약간 다르게해야하지만 개념은 동일하게 유지됩니다. 아래처럼 'TestHTMLReporter'사용자 정의를 얻을 수 있습니다.

프로젝트에 CustomReport.java 파일을 만들고 TestHTMLReporter.java의 전체 내용을 복사 - 붙여 넣기, getOutputFile 방법으로 파일의 이름을 변경하고는

public class CustomReport extends TestListenerAdapter implements IReporter { 

    @Override 
     public void generateReport(List<XmlSuite> xmlSuites, List<ISuite> suites, 
            String outputDirectory) { 

     } 
    ... 
    //paste the content of TestHTMLReporter.java here 
    ... 
    ... 

의 모든 수입이 제자리에 있는지 확인합니다 아래처럼 보일 것이다 TestHTMLReporter.java 이제이 파일에서 요구 사항에 따라 변경하십시오. 예를 들면 : 당신은 아래

// Test class 
     String testClass = tr.getTestClass().getName(); 
     long testMillis = tr.getEndMillis(); 
     String testMillisString = Long.toString(testMillis); 
     if (testClass != null) { 
     pw.append("<br>").append("Test class Name: ").append(testClass); 

     // this line to add end time in ms 
     pw.append("<br>").append("End Time(ms): ").append(testMillisString); 
     // Test name 
     String testName = tr.getTestName(); 
     if (testName != null) { 
      pw.append(" (").append(testName).append(")"); 

     } 

그런 다음 당신이 얻을 것이다 니펫을 추가 generateTable 방법에 올바른 장소에 다음 각 테스트의 종료 시간을 추가 할 경우 같은

enter image description here

아래

이제 기본 보고서 하나와 파일 이름이있는 보고서 두 개를 받게됩니다. 이제는 기본보고 수신기를 끄는 것이 유일한 것이므로 하나의 보고서 만 얻을 수 있습니다. 이를 위해서는 this을 따르거나 솔루션을 검색 할 수 있습니다. 희망이 도움이