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!
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)?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
good point!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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>.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.