To skip remaining tests after first failure or error has happened set configuration parameter skipAfterFailureCount to 1.
To skip remaining tests after the Nth failure or error has happened set configuration parameter skipAfterFailureCount to N, where N is number greater than zero.
Use maven-surefire-plugin 2.19 or higher, JUnit 4.0 or higher, or TestNG 5.10 or higher.
If version of TestNG is lover than 5.10 while the parameter skipAfterFailureCount is set, the plugin fails with error:
[ERROR] Failed to execute goal ...: Parameter "skipAfterFailureCount" expects TestNG Version 5.10 or higher. java.lang.NoClassDefFoundError: org/testng/IInvokedMethodListener
If version of JUnit is lover than 4.0 while the parameter skipAfterFailureCount is set, the plugin fails with error:
[ERROR] Failed to execute goal ...: Parameter "skipAfterFailureCount" expects JUnit Version 4.0 or higher. java.lang.NoSuchMethodError: org.junit.runner.notification.RunNotifier.pleaseStop()V
TestNG reports skipped methods however JUnit reports skipped classes. Preferably use JUnit 4.12 or higher version which fixed thread safety issues.
Although this feature works in forking modes as well, the functionality cannot be fully guaranteed (real first failure) in concurrent mode due to race conditions. The parameter reuseForks should be always set to true (which is default value), otherwise this feature won't work properly in most cases.
Since of 2.19.1 you can use parameters skipAfterFailureCount and rerunFailingTestsCount together. This is enabled by providers surefire-junit4 and surefire-junit47. You can run again failed tests and skip the rest of the test-set if errors or failures reached skipAfterFailureCount. Notice that failed tests within re-run phase are not included in skipAfterFailureCount.