XML and HTML reports in JUnit - Build an Automation Script
package com.example; import static org.junit.jupiter.api.Assertions.*; import org.junit.jupiter.api.Test; public class SampleTest { @Test void testThatPasses() { assertTrue(5 > 1, "5 is greater than 1"); } @Test void testThatFails() { assertEquals(2, 1 + 1, "1 + 1 should equal 2"); fail("Intentional failure for demonstration"); } } /* To run and generate reports: 1. Run tests with Maven: mvn clean test 2. XML reports will be in target/surefire-reports/*.xml 3. To generate HTML report, add to pom.xml: <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-report-plugin</artifactId> <version>3.0.0-M7</version> <executions> <execution> <phase>verify</phase> <goals> <goal>report</goal> </goals> </execution> </executions> </plugin> </plugins> </build> 4. Run: mvn verify 5. HTML report will be in target/site/surefire-report.html 6. Open the HTML report in a browser to see test summary. */
This JUnit 5 test class has two test methods: one that passes and one that fails intentionally.
Running mvn clean test executes the tests and generates XML reports in the target/surefire-reports directory.
The Maven Surefire Report Plugin is configured to generate an HTML report during the verify phase, which you run with mvn verify. The HTML report is saved in target/site/surefire-report.html.
Opening the HTML report in a browser shows a clear summary of passed and failed tests, making it easy to understand test results.
This setup follows best practices by using descriptive test names, standard Maven directories, and built-in plugins for report generation.
Now add data-driven testing with 3 different input values and verify reports reflect all test cases