Hello Codehaus mojo users, Both Cobertura and Emma maven plugins have instrument goals which process classes and instrument them for getting coverage data. Instrument goal in both of them performs additional task of changing build output directory to the directory where instrumented classes have been outputted so that other plugins would use that build output directory instead of standard one with clean non-instrumented classes. Maybe that behavior is a convention (forcing one to create a separate module just to get coverage), but convention is great as long as there is configuration option. For both of these plugins I could not find documented configuration parameters to configure instrumentation goal not to do the change of build output directory. Did I miss something?
I'd like to use same module for tests and for coverage - separate surefire plugin execution can be configured for the two tasks. Similarly failsafe plugin can be configured to run integration tests twice when integration test coverage is needed (once for clean and second time for instrumented classes). When integration test coverage is needed I'm fine if both clean and coverage executions are run together (AFAIAC they can run in parallel), including pre-integration-test, post-integration-test, and verify bound executions. E.g. for web app when coverage is needed: - in process-classes phase instrument goal can generate classes (but leave build output directory as-is) - in test phase two executions of surefire plugin could run unit tests, one with non-instrumented classes, and other for coverage with instrumented one - in package phase clean and war with instrumented classes can be assembled - in pre-integration-test phase a app server(s) can be started and both wars deployed as different contexts - in integration-test phase two executions of failsafe plugin can run integration tests on both clean and instrumented web app - in post-integration-test phase app server(s) can be stopped - in verify phase failsafe plugin can verify integration-tests success, while in same phase check goals can be used to verify coverage requirements This would be nice and easy, only if one could turn of that change of build output directory - only coverage plugin executions (like surefire execution for coverage tests, assembly execution to create war for coverage integration tests, and pre integration test phase deployment of coverage war) are interested in instrumented classes, all other plugin executions should be agnostic and use default build output and instrument goal execution should not affect them. Now, one has to configure all other plugin executions which are not concerned with coverage to use standard build output directory. That is why I've create a ticket ( http://jira.codehaus.org/browse/MCOBERTURA-138 ) and submitted a patch with tests which adds support for configuring cobertura maven plugin, where it should output instrumented classes (this was hardcoded) and flag to control whether build output directory should be bound to directory with instrumented classes. Comments and votes are more than welcome. Regards, Stevo. --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email
