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 votes

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
Community showcase
Asked Thursday in Jira Ops

I'm John Allspaw, Ask Me Anything about incident analysis and postmortems

I'm John Allspaw, co-founder of   Adaptive Capacity Labs, where we help teams use their incidents to learn and improve. We bring research-driven methods and approaches to drive effective inciden...

5,417 views 21 17
View question

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