|
View:
New views
1 Messages
—
Rating Filter:
Alert me
|
|
|
Re: Measuring integration test code coverage for a Maven plugin (fwd)Should have cc:ed surefire-dev also. Here's the coverage report. http://docs.codehaus.org/download/attachments/35422245/surefire-clover-2007-12-10.zip -Dan ---------- Forwarded message ---------- Date: Mon, 10 Dec 2007 00:02:50 -0800 (Pacific Standard Time) From: Dan Fabulich <dan@...> To: Maven Developers List <dev@...> Subject: Re: Measuring integration test code coverage for a Maven plugin Raphaël Piéroni wrote: > My guess is that you should deploy your instrumented plugin in a test > repository. That's basically what I wound up doing. For the record, I started by specifying a special local repository in my setting directory. Then I tried just using maven-clover-plugin 3.6, calling instrumentInternal directly (which you're not supposed to do because you risk getting cloverized stuff in your production output, though that's exactly what I wanted to do in my case). That didn't quite work because instrumentInternal includes a function redirectArtifact() that changes the output jar to be blah-clover.jar; once I commented that out and added clover as a dependency to all of my code, I was able to run my integration tests and get a total view of my integration test coverage. For the record, Surefire's unit tests covered 45% of Surefire; with the added integration tests we've covered 79.4% (87 classes, 3,323 / 4,187 elements). It also highlighted some key areas where we could add more tests, which was exactly what I wanted. -Dan 2007/12/7, Dan Fabulich <dan@...>: > > I recently added a bunch of integration tests for Surefire. These > integration tests automatically fork a separate Maven process to run real > Maven builds, like the Maven core integration tests do. > > This naturally led me to wonder: Does Surefire (now) have reasonable code > coverage? Specifically, which lines in Surefire were covered by unit > tests, which by integration tests, and which weren't covered at all? > > I know there's a variety of handy code coverage tools that work with > Maven, allowing you to instrument classes for code coverage and run your > unit tests against the instrumented classes. > > The catch in this case is that I need to somehow convince Maven to use the > instrumented version of my plugin, and not the regular "real" version of > the plugin, when I go to run my integration tests. The clover plugin, for > example, doesn't seem to want to let me do that. > > [On the other hand, maybe I should just use an instrumenting JVM > instead...? Java 1.5's new java.lang.instrument would probably do the > trick, but I'm not aware of any code coverage tool that works with > j.l.instrument, and anyway I'd have to fix SUREFIRE-179 just to get it to > work... :-)] > > Has anybody ever done this before? More generally, I don't think I've > ever seen an example of anyone using Maven to run multi-process > integration tests (e.g. cargo tests) and also measuring code coverage on > those integration tests. Has anyone seen a good example of this that I > could reuse? > > -Dan > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscribe@... > For additional commands, e-mail: dev-help@... > > |
| Free embeddable forum powered by Nabble | Forum Help |