Hi Aaron,
Excellent info.
If you want to try to build Emma support into hackystat, that would be
totally great! Here's some tips:
(1) Check out the latest version 7 from svn. Build and do an all.junit as
normal to ensure that things are OK.
(2) Create a new file in hackyCore_Build called emma.build.xml. That's
where you'll put the emma implementation. Please prefix all your targets
with "hackyCore_Build."
(3) Add an import of emma.build.xml into build.xml.
(3) Unlike the previous hackystat build system, let's not use properties to
disable/enable coverage collection from the 'standard' freshStart target.
Instead, follow the StackyHack approach for jblanket of having a separate
top-level target that essentially recreates the freshStart/all.junit
behavior, wrapping the emma stuff around it. What this means is that there
will be no infiltration of emma-specific code into the other ant files. To
gather coverage, one will basically just invoke a single top-level target
like:
% hackyCore_Build> ant emma
Good luck, and let us know how it goes!
Cheers,
Philip
--On Sunday, October 30, 2005 10:04 PM -1000 Aaron Kagawa
<[EMAIL PROTECTED]> wrote:
If Emma is a consideration, then here are some comments about Emma.
- Emma appears to be ok with speed, according to the website it is "quit
fast". :) - Emma provides multiple levels of coverage information:
class, method, line, basic block. - Emma has a reporting function that is
pretty cool. It not only provides coverage information but links with
source code and highlights code that is covered and not covered. - Has
Ant support and can produce a XML report.
Jblanket versus Emma.
- Emma does not have a concept excluding one line methods.
- Emma works with Java1.5
- I personally haven't had a problem with Emma yet. Although, I haven't
tested it on a client/server application but, it seems that shouldn't be
a problem.
Hackystat Specific Information:
- I already implemented a sensor for Emma.
- BUT, the DailyProjectCoverage and I suspect the JavaCoverageReducer
doesn't distinguish between different granularities of coverage. But, I
implemented my sensor so that it can just send method level coverage,
which was a nice hack to solve that bug. - With a little Hacking, I
think you can get emma to provide the workspace in addition to the class
name. In addition to package/class names, Emma provides file name:
<srcfile
name="BogusStack.java">
<coverage
type="class, %" value="0% (0/1)"/>
<coverage
type="method, %" value="0% (0/5)"/>
<coverage
type="block, %" value="0% (0/28)"/>
<coverage
type="line, %" value="0% (0/11)"/>
If this is possible, then this would solve the Unit Test classname only
bogusity that Cam brought up. I wonder if eliminating the need for
JavaClassWorkspaceMap would increase processing speed by a noticeable
amount.
By the way, this hackystat-dev-l message contains a link to a StackyHack
that uses Emma and the Emma Sensor: <
http://www.mail-archive.com/[email protected]/msg01406.html >
As far as I can tell, Emma does everything Jblanket can do, plus a little
bit more; (1) supports Java 1.5 and (2) has more coverage levels. It
shouldn't be too hard to try Emma in the new Hackystat build design.
Also, it might be a little interesting to compare the speed and
correctness of JBlanket versus Emma.
I feel a little inspired to give this a try in Hackystat, that is if Emma
is a serious contender. But, probably my earliest attempt can be
Wednesday at the earliest.
thanks, aaron
At 06:30 PM 10/30/2005, you wrote:
Another JBlanket report error.
Let's talk about this at the CSDL meeting tomorrow.
Cheers,
Philip
--On Sunday, October 30, 2005 3:55 AM -1000 Qin Zhang <[EMAIL PROTECTED]>
wrote:
Hackystat build (configuration Hackystat-ALL) failed.
Build report is available at
http://xenia.ics.hawaii.edu/hackyDevSite/configurationBuildReport.do?year
=2005&month=10&day=30&configuration=Hackystat-ALL Build Time Stamp: Sun
Oct 30 03:55:18 HST 2005