How to direct test output to the console
By default, test output goes to target/surefire-reports/. If you'd like to see it on the console, add
to the command line.
To make this permanent, configure the Surefire plugin as follows:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <reportFormat>brief</reportFormat> <useFile>false</useFile> </configuration> </plugin>
Or to set the properties without configuring the plugin use global property names:
<properties> <surefire.useFile>false</surefire.useFile> </properties>
if you want to set the reportFormat it's global property name is surefire.reportFormat
How to skip all tests by default
Put this in your settings.xml:
<!-- skip tests by default, but allow override on command line --> <profile> <id>skiptests</id> <activation> <property> <name>!maven.test.skip</name> </property> </activation> <properties> <maven.test.skip>true</maven.test.skip> </properties> </profile>
This will set maven.test.skip to true, as long as you don't set it on
the command line. The nice part about this technique is that it DOES
allow you to override it on the command line if you want to.
Surefire and the System Classloader
However you run Surefire (forked or not, with child delegation or not), the system classloader will not contain your test code. In
forked mode, it will only contain surefire and your testing framework. Surefire itself will create an isolated classloader that contains your
test code and its dependencies and run your tests from that classloader.
If you expect your code to work in anything but a basic Java application, do not depend on the system classloader.