Test Reports & Filtering
Generate and analyze test reports, and learn to filter tests for targeted execution.
Test Reports & Filtering is a free Groovy & Gradle: JVM Automation and Build Engineering lesson on CoddyKit — lesson 2 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the Groovy & Gradle: JVM Automation and Build Engineering learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.
Understanding Test Outcomes
Test reports are essential for understanding the health of your project. They provide a clear summary of which tests passed, failed, or were skipped.
This insight helps developers quickly pinpoint issues, track progress, and ensure code quality. Without them, debugging would be much harder!
Automatic HTML Reports
When you run tests with Gradle, it automatically generates an interactive HTML report every time you run your tests. This feature is enabled by default when you apply the java or java-library plugin.
These reports offer a user-friendly interface to browse test results, making analysis straightforward.
Finding the Report File
After executing your tests using the test task, Gradle places the generated report in a specific directory. Look for build/reports/tests/test/index.html.
You can open this file directly in any web browser to view a comprehensive overview of your test run. To generate one, simply run: ./gradlew test
Exploring Report Details
The HTML report provides valuable details:
- Summary: Total tests, failures, and skipped tests.
- Test Classes: A list of all executed test classes.
- Individual Tests: Status and duration for each test method.
- Failure Details: Stack traces and error messages for failed tests.
This structure helps you drill down from a high-level overview to specific problem areas.
Running Specific Tests
Sometimes you don't need to run all tests. Perhaps you're debugging a specific feature or re-running a failed test.
Gradle allows you to filter which tests are executed, saving time and focusing your efforts. This is done using the --tests command-line option.
Filter by Class Name
To run all tests within a specific test class, provide its fully qualified name with the --tests flag.
For example, if you have a class named com.example.MyFeatureTest, you'd run:
./gradlew test --tests com.example.MyFeatureTestThis executes every test method inside that single class.
Execute a Single Method
You can get even more granular by specifying a particular test method within a class. Append the method name to the fully qualified class name.
If com.example.MyFeatureTest has a method testSpecificCase, use:
./gradlew test --tests com.example.MyFeatureTest.testSpecificCaseThis is extremely useful for focused debugging.
Using Wildcards in Filters
Gradle's --tests option supports wildcards (*) for more flexible matching. This allows you to run groups of tests that follow a pattern.
*IntegrationTest: Runs all classes ending with "IntegrationTest".com.example.*: Runs all tests in thecom.examplepackage and its subpackages.*.testFailure*: Runs any method named `testFailure` (or similar) in any class.
Multiple Filter Patterns
You can apply multiple --tests options in a single command. Gradle will run any test that matches at least one of the provided patterns.
For example, to run tests from two different classes:
./gradlew test --tests com.example.ClassA --tests com.example.ClassBThis provides powerful control over your test execution.
Quick Check: Filtering
Consider a project with a test class com.myapp.services.UserServiceTest containing methods testCreateUser and testDeleteUser.
Which Gradle command will run only the testCreateUser method?
Recap: Reports & Filtering
In this lesson, we explored the critical role of test reports in Gradle. You learned that:
- Gradle automatically generates detailed HTML test reports.
- These reports are found in
build/reports/tests/test/index.html. - You can filter test execution using the
--testsoption. - Filters can target classes, methods, or use wildcards for flexibility.
Mastering these techniques helps you efficiently manage and debug your test suite!
Frequently asked questions
Is the “Test Reports & Filtering” lesson free?
Yes — the full text of “Test Reports & Filtering” is free to read here on the web, and the Groovy & Gradle: JVM Automation and Build Engineering course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the Groovy & Gradle: JVM Automation and Build Engineering course, upgrade to CoddyKit PRO.
What will I learn in “Test Reports & Filtering”?
Generate and analyze test reports, and learn to filter tests for targeted execution. You practise Groovy & Gradle: JVM Automation and Build Engineering with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.
Do I need any experience to start Groovy & Gradle: JVM Automation and Build Engineering?
No prior experience is required. Groovy & Gradle: JVM Automation and Build Engineering on CoddyKit is structured for beginners through advanced learners; this is — lesson 2 of 4, so you can start here or from the beginning and move at your own pace.
How long does the “Test Reports & Filtering” lesson take?
Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.
Can I write and run code in this Groovy & Gradle: JVM Automation and Build Engineering lesson?
Yes. Every Groovy & Gradle: JVM Automation and Build Engineering lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.
All lessons in this course
- Unit & Integration Testing
- Test Reports & Filtering
- Code Coverage & Static Analysis
- Test Fixtures and Shared Test Code