OK, I've just committed changes that enable us to run JBlanket on Version 7. Here's the deal. To run JBlanket, you _must_ define jblanket.dir in hackystat.properties. A typical/reasonable value is:

 jblanket.dir=c:\\svn\\hackyCore_Build\\build\\jblanket

Note the need for double back slashes because Windows was designed stupidly. Now you invoke it as follows:

 ant -q -f jblanket.build.xml hackyCore_Build.jblanket

This basically does a 'freshStart all.junit' with JBlanket instrumentation included. I require the jblanket.build.xml file to be the top-level so that I can easily fail the build if jblanket.dir is not defined (while not requiring this property to be set under normal usage of the build system).

JBlanket takes about 5 minutes 20 seconds on my workstatation vs. 2 minutes 50 seconds for a standard freshStart all.junit: a little less than double the time. That's not terrible, but perhaps not as good as Emma. JBlanket currently leaves the instrumented .class files in build/, so you probably want to do a freshStart afterwards.

Aaron may want to look at jblanket.build.xml for ideas on how to refine emma.build.xml. Note that it's OK to modify the <makeJUnit> task to include a jblanket (or emma) sysproperty if that's all you need to do---these will do no harm if someone is not using jblanket/emma. I don't use any antcalls, which I would like to avoid if at all possible.

It will also be cool to compare the output of JBlanket and Emma.

Finally, JBlanket is a bit brittle, in the sense that if you repeatedly invoke JBlanket, the later runs will eventually produce a unit test failure in hackyCore_Report (at least for me). This does not appear to occur if you run JBlanket once over a fresh invocation of Tomcat.

Oh, and we'll need to keep checking to see if JBlanket works OK as we add more modules. Christoph hacked some suspicious code into the JBlanket target in Version 6. :-)

Have fun!

Cheers,
Philip

Reply via email to