Clover
Features – Developer Workflow
Use Clover interactively on the development desktop.
An integral part of the development cycle
Typically, a developer is responsible for obtaining a certain level of code coverage on her code before it is accepted into the base.
The work cycle the developer follows is something like:
- Write code/tests
- Run tests
- Inspect test results and code coverage
This process is repeated incrementally until all tests pass and the tests' code coverage meets a certain level.
So how does Clover make this process quicker and easier?
Find the untested code
Use Clover to quickly find untested Java code and measure testing completeness — which then feeds back into the testing process to improve tests.
Write your tests as you code
Clover gives you instant insight into what your tests are actually testing. This real-time feedback is a great motivator when facing the otherwise daunting task of writing tests, as it encourages developers to incrementally improve their tests, and stay on top of them throughout the life of the project.
Works with your favourite tools
A fully integrated Eclipse plugin allows you to measure and inspect coverage results without leaving the IDE. A comprehensive suite of Ant and Maven tasks are provided, and Legacy systems are also supported.
Real-time, interactive test feedback
Clover gives developers the ability to:
- View fully integrated test and coverage results in one place.
- See which tests hit what code and vice versa.
- Measure coverage on a chosen subset of classes.
- Quickly output source-level code coverage results as a hard-copy report.
- Compare coverage data from several iterations over a given time period.
Usage example: Having just written a test, a developer uses Clover to ensure the test is exercising the correct parts of the application.
Follow the trail
When viewing a Clover report, in-page controls let you select tests for which you want to see coverage. Drill down to see a detailed report for each test, including the test source.
Java source rendering provides cross-referenced linking for easy navigation between classes and up and down package hierarchies. Methods are collapsible with inline method-level coverage stats. At any source line a pop-up will report which tests executed that line, and whether they passed or failed:

