Per-test coverage does not work if the test loads the classes into multiple class loader

Hi,

We have a unit test that loads classes into another classloader. although we have the coverage data for those classes. Clover is unable to link the per-test coverage data to the unit test. Can you please help.

Regards,

Binod

5 answers

0 vote

Hi Binod, could you give more details how your project and tests are organized? Which Clover version do you use? Do you use Clover-for-Ant or Clover-for-Maven (or other)? How your unit test works exactly - does it spawn another process? Have you tried to use the Clover's "distributed coverage" feature?

Hi Marek,

Thanks for the quick reply. We use clover-for-ant and the clover version is 3.1. We are running the unit test in one jvm only and do not spawn a new process, but we do use multiple classloaderd within the same jvm to load the same classes in multiple class loader so that we can simulate 2 similar env in the same jvm.

It does not spawn a new process therefore I am not sure how to use the distributed coverage features.

0 vote

It might be a problem with availability of Clover runtime classes in your custom class loader. If classes are not found, then coverage will not be recorded. Does your class loader have the clover.jar on classpath? Do you have any exceptions in the log like NoClassDefFoundError? Have you tried to run your application with -Dclover.logging.level=debug to get more information?

I am getting the coverage in the overall report but the per-test code coverage information that is generated is not correct. I want that per-test coverage report to point me to classes that were covered in the other classloader.

0 vote

It might be a problem that per-test coverage files written by Clover's coverage recorders from two different class loaders have the same file name and they're being overwritten, resulting in loss of coverage data. This might explain why you see incorrect per-test coverage in the report. I'll be happy to investigate it further - could you raise a support ticket at http://support.atlassian.com (in the 'Clover Support' project) and attach some code samples and build logs?

Suggest an answer

Log in or Sign up to answer
How to earn badges on the Atlassian Community

How to earn badges on the Atlassian Community

Badges are a great way to show off community activity, whether you’re a newbie or a Champion.

Learn more
Community showcase
Posted yesterday in Confluence

Calling all marketing teams who use Confluence - we want to hear from you!

Hi Community! me again 🙂 If you’re a marketing team using Confluence, we want to hear your story! How did you start using Confluence? What are your use cases? What have been some of the benefits?...

51 views 2 2
Join discussion

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