How to programatticaly read pertestcoverage information from clover.db

Intention is to programtically figure out which all tests covers any piece of code, Method, Class or Package. 

I went through https://confluence.atlassian.com/display/CLOVER/Database+Structure but sample code as well as javadocs (https://docs.atlassian.com/atlassian-clover/latest/)  does not contain details for com.atlassian.clover.recorder.PerTestCoverage and  com.atlassian.clover.CloverDatabase 

 

Thanks!

 

2 answers

0 vote

In case you want to find a list of tests associated with a given test class, you can cast com.atlassian.clover.api.registry.ClassInfo to com.atlassian.clover.registry.entities.FullClassInfo and call the getTestCases() method which returns Collection<com.atlassian.clover.registry.entities.TestCaseInfo>.

Update:

In case you want to find all tests hitting given element, you can cast BranchInfo / ElementInfo / MethodInfo etc to corresponding FullBranchInfo / FullElementInfo / FullMethodInfo etc ... and next pass it as a parameter to the CloverDatabase.getTestHits(CoverageDataRange range) method, which returns Set<TestCaseInfo>.

Not working for me, I tried below code

 

CloverDatabase db = CloverDatabase.loadWithCoverage(args[0], new CoverageDataSpec());
ProjectInfo projectInfo = db.getRegistry(). getProject();
FullClassInfo classInfo = (FullClassInfo)projectInfo.findClass("com.abc.myclass");
Collection<TestCaseInfo> tcinfo = classInfo.getTestCases();

 

returns tcinfo of size 0

Do you have per-test coverage files (clover*.s)?

Yes I do have those files in same folder where clover.db is. DB is generated using help provided on thread https://answers.atlassian.com/questions/13408794/clover-per-test-coverage-for-automated-functional-test So i have Clover-Merged.db = Clover-app.db + Clover-test.db And i am passing Clover-Merged.db to above code.

db.getTestHits() worked, it returns the exact tests hitting any piece of Code.

good point!

Suggest an answer

Log in or Sign up to answer
Atlassian Community Anniversary

Happy Anniversary, Atlassian Community!

This community is celebrating its one-year anniversary and Atlassian co-founder Mike Cannon-Brookes has all the feels.

Read more
Community showcase
Posted 9 hours ago in Jira

We want to know what Jira Service Desk apps you're using!

Hi Community! My name is Amir and I’m on the Jira Service Desk product marketing team at Atlassian. Our team would love to understand how you’re leveraging our ecosystem for Jira Service Desk. Wha...

33 views 0 5
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