Using skipTests as a flag has a negative side effect such that you cannot do
> mvn -Dtest=SomeTestCase test
in an integration module any more. Instead you have to do
> mvn -DskipTests=false -Dtest=SomeTestCase test
This is non-intuitive and non-standard. Instead I propose to use an
alternate switch like 'allTests' to turn on profiles which run the
complete set of tests. IMHO its ok to exclude entire (testsuite) modules
from the build (i.e. not to compile the tests) because compilation
errors show up in the IDE and Hudson anyway.
1) By default, all normal modules and testsuite/smoke will be built in
the standard way
(i.e. failing tests will fail the build)
2) By adding -DskipTests=true tests that would normally be executed are skipped
3) By adding -DallTests all modules that contain tests will be executed. In Hudson you could add -fae
which fails the build at the end - so catch all failing tests in a single run
It boils down to whether you want to compile tests that you don't want to execute.
IMHO that's not necessary in day to day work - Hudson can catch this.