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