Getting custom clover reports with automated builds/tests


Here is a brief description of what we are doing and what we are looking for.

We have setup a Jenkins Job to

  • Get sources from HG-repository
  • Instrument the sources with Clover
  • Build the "clovered" war
  • Run JUnit tests on clovered war, gathering the code coverage data
  • Deploy the clovered war to another (Linux-) machine, transferring clover db and traces there as well
  • Run Webtests (using Robot Framework and Selenium) on clovered war, gathering the code coverage data
  • Getting the clover db and traces back to the Jenkins machine
  • Generating Reports on Jenkins machine

Everything is working fine so far, till we want to summarize and aggregate the reports produced by these various tools. What we want to have as output after the job completion would be an automatically generated email with following data:

  • JUnit Tests Total/Failed <-- data comes from surefire plugin responsible for running JUnit tests in Jenkins, but it is also available in Clover reports
  • Webtests Total/Failed <-- data comes from Selenium/Robot Framework, Clover knows nothing about that, right?
  • Total Code Coverage <-- data comes from Clover
  • Branch Code Coverage <-- data comes from Clover

As you see, all the needed data is somehow available and can be displayed in Jenkins. But it is scattered over different locations and is present in different formats. Some reports are even generated on the fly by the corresponding plugins.

The big question now is how to get this data easily to generate a readable high level email. Is there a way to access this data directly without parsing some xml or html sources or other hacks which would be not necessarily accurate, hardly maintainable and not so trivial to implement? Does Clover posts the summary data to some environment variables which can be accessed directly from Jenkins (to put them into the ext-email plugin, for example)?

Any help would be highly appreciated.


1 answer

0 votes

Regarding Clover part:

You could add the "execute shell" build step with a following command:

java -cp /path/to/clover-X.X.X.jar com.cenqua.clover.reporters.console.ConsoleReporter -i /path/to/clover.db > /path/to/outputfile.txt

This will produce a short summary like one below:

Clover Version 3.1.5, built on April 25 2012 (build-856)
Coverage Overview -
Methods: 7/7 (100%)

Statements: 10/10 (100%)

Branches: 0/0 ( - )

Total: 100%

Avg Method: 1.0
Density: 0.7
Total: 7

Note that clover.license must be present in the same directory where clover-X.X.X.jar is located or passed as a system property, for example:

java -Dclover.license.path=/path/to/clover.license -cp [...]

More details:


Thanks for your answer.

Is there any chance to customize the output? E.g. adding the Tests Total/Failed numbers?

Yes, I have extended console reporting in Clover 3.1.6. You can use for instance:

  • ConsoleReporter -u -c ALL
  • <clover-log showUnitTests="true" codeType="ALL"/>

in order to see test results. See documentation on confluence pages.

Suggest an answer

Log in or Sign up to answer
Community showcase
Published 9 hours ago in Jira Ops

Jira Ops Early Access Program Update #2: Let’s talk severity levels

Welcome to your weekly Jira Ops Early access program update, where we’re sharing news and updates on Jira Ops' progress as we work toward our 1.0 release. If you ever want to drop us feedback or idea...

20 views 0 0
Read article

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you