Missed Team ’24? Catch up on announcements here.

×
Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Can clover get code coverage for those classes that get generated dynamically?

Shankar KC September 7, 2014

Hi,

In our application some JAVA classes are getting generated dynamically. May be this could be a sample http://www.rgagnon.com/javadetails/java-0039.html. In this sample you can see a dynamic method getting executed. Can I get code coverage details for such dynamic method? If yes can you please elaborate ?

Thanks

Shankar KC

1 answer

2 votes
Marek Parfianowicz
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
September 8, 2014

Hi Shankar,

Yes, Clover can measure code coverage for such a dynamically generated class. What you have to do is:

 

1) Generate source code and store it in a file

In an article linked by you it's being done in lines:

File sourceFile   = new File("/temp/Hello.java");
FileWriter writer = new FileWriter(sourceFile);
...
writer.close();

 

2) Call CloverInstr tool in order to add Clover code to it

You can either call it from a command line, for instance:

java -cp /path/to/clover.jar com.atlassian.clover.CloverInstr -i path/to/clover.db -d /temp/clover-instr /temp/Hello.java

 

or directly from code:

import com.atlassian.clover.CloverInstr;

String[] cliArgs =  { 
    "-i", "path/to/clover.db", 
    "-d", "/temp/clover-instr", 
    "/temp/Hello.java" };

int result = CloverInstr.mainImpl(cliArgs);
if (result != 0)    {
    // problem during instrumentation
}

 

3) Call java compiler on an instrumented file

In our example you'd have to run a JavaCompiler task on the /temp/clover-instr/Hello.java.

 

Cheers
Marek

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events