Merging clover db from different machines

I have a case where I need to run the automation tests on parallel machines. Is there anyway by which I can merge the 4 cloverMerge.db from different machines and create a report out of that merged db?

2 answers

1 vote

Hello Padmanabh,

I'm not sure if I understand correctly what you're asking about, so as far it goes about managing your clover.db files on different machines and modules there's couple of things coming to my mind: 

On the other hand if you're asking how to get distributed per test coverage from all machines I think here's an tutorial for you (keep in mind this will work only with supported testing frameworks):

Don't hesitate to ask if you have any questions. 




Grzegorz, thanks for you answer. I didn't get exactly what you meant by "you can find clover.db files for all of your modules via find command, compress it (i.e via tar.gz ) and then sync only one file between 3 machines"? My scenario is machine1, machine2 and machine3 have three different instances of source code. I have to do it this way because I run regression runs in chunks of tests on each independent machine. So is there an easy way to have 1 clover report rather than 3 reports for three independent instances. Hope I made it little clearer..

As far as I get it right now you're getting 3 different Clover reports on 3 different machines, which none of them indicating full code coverage. Because all of them are generated from the same source code you should copy all code coverage files from every machine (clover.db*) to a dir which contains clover.db file and generate report from within it.

You don't really need to merge anything. Please refer to Marek's comment and link provided by him.




0 votes

Yes. It's possible to collect coverage data from several machines. In order to merge Clover databases you can use <clover-merge> Ant task, clover2:merge Maven goal or the CloverMerge command line tool.


The question is whether you actually need to perform a database merge. I assume that you have only one application and you just split tests into several sets and run them in parallel on separate machines - each machine is running the same application. Am I correct? If yes, then it should sufficient to copy coverage data files (clover.db*) from all machines into one directory and run report generation.


Please have a look at this manual:


Feel free to ask if you have any questions.

Marek, thanks, I didn't try your suggestion, but I don't think it worked. Here is my scenario based on your link.

  1. I have same application deployed on different machines.
  2. Different tests from UI run on it on three different machines and so I have clover.db for same modules on 3 different machines.
  • MachineA : C:\sourcetree\moduleA\clover.db clover.db* and clover.liverec file.
  • MachineB : C:\sourcetree\moduleA\clover.db clover.db* and clover.liverec file.
  • MachineC : C:\sourcetree\moduleA\clover.db clover.db* and clover.liverec file.

And I have about 25 such modules on these three machines. Is there some easy way for this?



Suggest an answer

Log in or Sign up to answer
Community showcase
Published Wednesday in Opsgenie

Getting the Most out of Atlassian and Opsgenie Together

We’re excited to invite you to this action-packed webinar where we will demonstrate how to integrate Opsgenie’s powerful alerting and on-call management tools with your entire Atlassian stack. Mar...

66 views 0 1
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