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