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

This widget could not be displayed.

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>.

This widget could not be displayed.

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 Summit 2018

Meet the community IRL

Atlassian Summit is an excellent opportunity for in-person support, training, and networking.

Learn more
Community showcase
Published yesterday in Marketplace Apps

The 7 hacks of highly successful automation

...there's anything I've learnt from working, it's that people are lazy! No offense to anyone reading this, but it's true and we can all admit it. The easier you make something for someone, the more...

82 views 0 8
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