What?
This Maven plugin executes JUnit tests in your Maven projects. Compared to Surefire, this plugin is capable of executing tests in parallel --- either inside a single process, if your tests are well isolated from each other, or in several processes, if your tests collide on some VM-wide resources.
This parallel execution capability greatly reduces the time it takes to run tests on modern multi-core/multi-socket systems. To use it you have to disable execution of the surefire-plugin and enable execution of this plugin in the test phase:
<plugin> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skip>true</skip><!-- tests now run by maven-junit-plugin --> </configuration> </plugin> <plugin> <!-- see http://maven-junit-plugin.kenai.com/ for more info --> <groupId>com.sun.maven</groupId> <artifactId>maven-junit-plugin</artifactId> <version>1.5</version> <executions> <execution> <goals> <goal>test</goal> </goals> <configuration> <testFailureIgnore>true</testFailureIgnore> <fork>true</fork> <concurrency>1</concurrency> <!-- -1 means # of processors in the system --> <argLine>-XX:MaxPermSize=192m -Xmx256m -Dfile.encoding=UTF-8</argLine> <systemProperties> <property> <!-- use AntClassLoader that supports predictable file handle release --> <name>hudson.ClassicPluginStrategy.useAntClassLoader</name> <value>true</value> </property> </systemProperties> </configuration> </execution> </executions> </plugin>