views:

431

answers:

4

Hi,

I would like to run Atlassian Clover in a production environment (I don't have an issue with overhead ). Does anyone have experience with this, or can you direct me how to do it?

My goal is to get clover reports based on real users actions. I'm using JBoss + JDK 1.5

A: 

I haven't used clover in a long time... but I do use cobertura (http://cobertura.sourceforge.net/faq.html) for code coverage. Looking at the FAQ for cobertura it does work with JBoss.

TofuBeer
do you have experience working with jboss ? if so can you provide the params needed to run cobertura in the run.bat file ?
+1  A: 

You can deploy clover build (along with the coverage.db files generated during the instrumentation) to your servers, add a bunch of clover-specific java options to set it up and then collect the results, merge them using the clover merge tools and generate the reports. See Clover Wiki for detailed instructions.

Please note that by default, clover dumps the coverage data upon process termination - you might want to do some research on how to make it happen periodically. Look into -flushpolicy and -flushinterval options.

Bogdan
A: 

The general strategy would be to use Clover (or Cobertura or a similar tool) when you compile your web application. If you use maven for doing your builds, you can use the cobertura plugin:

http://mojo.codehaus.org/cobertura-maven-plugin/instrument-mojo.html

To add this easily with the cobertura:instrument goal. You then drop the generated war into JBoss just as before.

You'd probably also be interested in Glassbox:

http://www.glassbox.com/glassbox/Home.html

It doesn't generate code coverage, instead it gives you a high-level report at what's going on and can tell you where you may have bottlenecks.

James Kingsbery
+1  A: 

found the answer finally , thanks all . after I created the Clover DB ( cmd / or eclipse integration ) , while starting my App server I add the following params -Djboss.shutdown.forceHalt=false -Dclover.initstring.basedir=/coverage.db it will do the job