JUnit – Generating HTML Reports

Lokesh Gupta

Learn to create an HTML report for execution results of JUnit tests. In this example, I am creating an HTML report for JUnit-Examples project available on Github.

1. Maven Surefire Report Plugin

1.1. Add Plugin Dependency

Add the latest version of maven-surefire-report-plugin into reporting section of pom.xml.

<reporting>
	<plugins>
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-surefire-report-plugin</artifactId>
			<version>2.22.2</version>
		</plugin>
	</plugins>
</reporting>

1.2. Default Command

When we run the JUnit tests with Surefire plugin, it generates the reports in plain-text and XML formats.

When invoked, the Surefire Report plugin parses the generated target/surefire-reports/TEST-*.xml files and renders them using DOXIA (content generation framework), creating the test results’ HTML interface version.

Notice that by default, the plugin is not attached to any of the core phases, which we generally invoke using mvn command. So, we have to call it directly from the command line:

mvn surefire-report:report

If we open the generated HTML report, it looks something like this.

2. Cofiguration Options

2.1. Showing Only Failed Tests

By default, the Surefire Report Plugin shows all the successes and failures in the generated HTML report. To display the failed tests only, the property showSuccess should be set to false.

<reporting>
	<plugins>
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-surefire-report-plugin</artifactId>
			<version>2.22.2</version>
			<configuration>
				<showSuccess>false</showSuccess>
			</configuration>
		</plugin>
	</plugins>
</reporting>

2.2. Custom Report Name

To set the custom file name for the generated HTML report, the outputName property should be set to the desired name.

After executing mvn site, the generated report file is named JUnit-Examples-Test-Report.html.

<reporting>
	<plugins>
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-surefire-report-plugin</artifactId>
			<version>2.22.2</version>
			<configuration>
				<outputName>JUnit-Examples-Test-Report</outputName>
			</configuration>
		</plugin>
	</plugins>
</reporting>

2.3. Source Code Reference for Failed Tests

For the failed tests, we may wish to report out the line number at which they got failed. This can be done using the maven-jxr-plugin plugin.

Add this plugin into the reporting section of pom.xml file for reporting the line numbers.

<reporting>
	<plugins>
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-surefire-report-plugin</artifactId>
			<version>2.22.2</version>
			<configuration>
				<outputName>JUnit-Examples-Test-Report</outputName>
			</configuration>
		</plugin>
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-jxr-plugin</artifactId>
			<version>3.1.1</version>
		</plugin>
	</plugins>
</reporting>

Happy Learning !!

Comments

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments

About Us

HowToDoInJava provides tutorials and how-to guides on Java and related technologies.

It also shares the best practices, algorithms & solutions and frequently asked interview questions.

Our Blogs

REST API Tutorial

Dark Mode

Dark Mode