Configuring ReportNG with TestNG for HTML Reports

ReportNG is a simple plug-in for the TestNG unit-testing framework to generate HTML reports as a replacement for the default TestNG HTML reports. You can also customize html report with the help of TestNG listeners.

To use ReportNG reports we need to follow the below three steps:

Step 1: Add the below Jars Files to your project.


Please use the below links to download the jars.

Click here to Download ReportNG and Velocity jars. Click on downloads to download the jars. You just need to unzip and add to the project.

Click here to download Google Guice Jar. You need to unzip and add guice.jar once the download completes.

The structure should look like below:
ReportNG Jars

Step 2: The Most important step, to make sure reportNG reports, we need to disable the default TestNG Listeners.

It can be done by following the below steps:

1. Right Click on Properties
2. Click on TestNG
3. You will find an option as "Disable default listeners", check the checbox
4. Click on "Apply" button, it will show as message as "Project preferences are saved".
5. Now Click on "OK" button.

The screen should look like the below:

TestNG Properties

Step 3: We need to add the below two listeners to testng.xml file.

      <listener class-name="org.uncommons.reportng.HTMLReporter"/>
      <listener class-name="org.uncommons.reportng.JUnitXMLReporter"/>

Finally testng.xml file should look as the below for the given example :

<!DOCTYPE suite SYSTEM "" >
<suite name="Suite1" verbose="1" >
      <listener class-name="org.uncommons.reportng.HTMLReporter"/>
      <listener class-name="org.uncommons.reportng.JUnitXMLReporter"/>
  <test name="Regression Test Suite"   >
      <package name="packOne" />
      <package name="packTwo" />

The example code as follows:

Please add two packages as "packOne" and "packTwo" and a class for both the packages.

Package: PackOne
Class : demoOne

Here the first testcase will result in failure as i have used timeOut as 1000, to show you the report with both PASS and FAIL report.

package packOne;
import org.testng.annotations.Test;
public class demoOne {
	public void firstTestCase() throws InterruptedException
		System.out.println("im in first test case from demoOne Class");
	public void secondTestCase()
		System.out.println("im in second test case from demoOne Class");

Package : packTwo
Class : demoTwo

package packTwo;
import org.testng.annotations.Test;
public class demoTwo {
	public void firstTestCase()
		System.out.println("im in first test case from demoTwo Class");
	public void secondTestCase()
		System.out.println("im in second test case from demoTwo Class");

The below report is with the Default TestNG HTML Report.

TestNG Reports

Please execute the testcases/scripts to see the reports as below. After executing the testcases, Refresh the project folder to see the updated Reports. You will find a folder "html" and click on Index.html file to view the Report Generated By ReportNG

The below is the Overview Report generated after configuring the ReportNG with TestNG.

ReportNg Report Overview

The below is the Report generated after configuring the ReportNG with TestNG.

ReportNg Report

Test Frameworks: 


Is it possible for me to modify these Resultng report ??

Yes you can do modifications. There are optional system properties in ReportNG. Please refer ReportNG website.

But i want to modify this report and ADD
1. Screenshot
2. Logo of xyz company

Good one.

Useful Material. Thanks!!!

Just want to understand these two lines

<listener class-name="org.uncommons.reportng.HTMLReporter"/>
<listener class-name="org.uncommons.reportng.JUnitXMLReporter"/>

What is this path ""org.uncommons.reportng.HTMLReporter"?

Hi there,

Nice post! Thanks for sharing!

I followed all same steps mentioned above but I don't see any "html" folder or any other folder for the report. What could be the problem... please respond.


Refresh the folder and try to check for the html.

Great Article!

I want to customize the ReportNG format of my own is there is any way please reply to me.

Add new comment

This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.