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


Reply via email to