How can I atomically run mvn tests (without rebuilding source code)?

jayunit100 picture jayunit100 · Feb 14, 2013 · Viewed 9.3k times · Source

I want to run a maven project lifecycle starting, and ending, with the unit tests.

How can I skip recompilation and re-resolution of dependencies and only run the test phase?

Answer

Akro picture Akro · Feb 14, 2013

If you start maven by calling a phase it will execute all lifecycle phases up to the one you are calling. For example, when calling

mvn test

all the phases before the test lifecycle phase will be execute too: the project will be validated, sources and resources will be generated and processed, sources will be compiled, the same will happen to test sources and resources and finally unit tests will be run.

But you can also call the plugin goal that is bound to a lifecycle phase. In the case of the test phase the bound goal is surefire's test mojo. So you could call

mvn surefire:test

and no other lifecycle phase will be executed. You can find the goals bound to each phase depending on the package type here.