Is there any way to provide some command-line argument in order to skip all tests but one on some module? So I will not need to change pom.xml every time I will need to run another test?
For example, I want to create build configuration on TeamCity, and provide command-line arguments to run only single test in some module. Next time I will need to change it and run another test, and so on.
Perhaps it is not how CI is intended to be used, but still.
In case the module to be tested depends on other projects, solution works by changing commands as:
I assume you've read the docs about running a single test under surefire? What they don't tell you is how to do that in a sub-module:
Where
subproject
is the project containing that test. From the mvn man page:Other answers I see are not fully complete, for projects that depend on other sub-modules to be built. One option is to run
mvn install
to have the required jars to be installed into~/.m2/...
, but that option is not very "clean".Following command will build the sub-modules, and run only the test class that is specified. This is to be run at parent module level. Also, no need to specify sub-module name.
As an aside, this can also be
mvn clean test -Dfa.....
. I have a habit of always runningclean
when running tests.References..
-am
will make all the other sub-modules.-DfailIfNoTests=false
does not fail the entire process since we are not intending to run tests in other modules.-pl
option is not needed since-am
is already building everything