[SCM-912] Unify messages if SCM system command is not available
diff --git a/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/BranchMojoTest.java b/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/BranchMojoTest.java
index 9baea5f..ef78847 100644
--- a/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/BranchMojoTest.java
+++ b/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/BranchMojoTest.java
@@ -53,8 +53,7 @@
 
         if ( !ScmTestCase.isSystemCmd( SvnScmTestUtils.SVNADMIN_COMMAND_LINE ) )
         {
-            System.err.println( "'" + SvnScmTestUtils.SVNADMIN_COMMAND_LINE
-                + "' is not a system command. Ignored setUp." );
+            ScmTestCase.printSystemCmdUnavail( SvnScmTestUtils.SVNADMIN_COMMAND_LINE, "setUp" );
             return;
         }
 
@@ -79,8 +78,7 @@
     {
         if ( !ScmTestCase.isSystemCmd( SvnScmTestUtils.SVN_COMMAND_LINE ) )
         {
-            System.err.println( "'" + SvnScmTestUtils.SVN_COMMAND_LINE
-                + "' is not a system command. Ignored " + getName() + "." );
+            ScmTestCase.printSystemCmdUnavail( SvnScmTestUtils.SVN_COMMAND_LINE, getName() );
             return;
         }
 
diff --git a/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/ChangeLogMojoTest.java b/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/ChangeLogMojoTest.java
index 6a2feff..3fc881e 100644
--- a/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/ChangeLogMojoTest.java
+++ b/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/ChangeLogMojoTest.java
@@ -48,8 +48,7 @@
 
         if ( !ScmTestCase.isSystemCmd( SvnScmTestUtils.SVNADMIN_COMMAND_LINE ) )
         {
-            System.err.println( "'" + SvnScmTestUtils.SVNADMIN_COMMAND_LINE
-                + "' is not a system command. Ignored setUp." );
+            ScmTestCase.printSystemCmdUnavail( SvnScmTestUtils.SVNADMIN_COMMAND_LINE, "setUp" );
             return;
         }
 
@@ -61,8 +60,7 @@
     {
         if ( !ScmTestCase.isSystemCmd( SvnScmTestUtils.SVN_COMMAND_LINE ) )
         {
-            System.err.println( "'" + SvnScmTestUtils.SVN_COMMAND_LINE
-                + "' is not a system command. Ignored " + getName() + "." );
+            ScmTestCase.printSystemCmdUnavail( SvnScmTestUtils.SVN_COMMAND_LINE, getName() );
             return;
         }
 
@@ -84,8 +82,7 @@
     {
         if ( !ScmTestCase.isSystemCmd( SvnScmTestUtils.SVN_COMMAND_LINE ) )
         {
-            System.err.println( "'" + SvnScmTestUtils.SVN_COMMAND_LINE
-                + "' is not a system command. Ignored " + getName() + "." );
+            ScmTestCase.printSystemCmdUnavail( SvnScmTestUtils.SVN_COMMAND_LINE, getName() );
             return;
         }
 
diff --git a/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/CheckoutMojoTest.java b/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/CheckoutMojoTest.java
index cfc175a..d106a20 100644
--- a/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/CheckoutMojoTest.java
+++ b/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/CheckoutMojoTest.java
@@ -73,13 +73,12 @@
     {
         if ( !ScmTestCase.isSystemCmd( SvnScmTestUtils.SVNADMIN_COMMAND_LINE ) )
         {
-            System.err.println( "'" + SvnScmTestUtils.SVNADMIN_COMMAND_LINE
-                + "' is not a system command. Ignored " + getName() + "." );
+            ScmTestCase.printSystemCmdUnavail( SvnScmTestUtils.SVNADMIN_COMMAND_LINE, getName() );
             return;
         }
 
         FileUtils.forceDelete( checkoutDir );
-        
+
         SvnScmTestUtils.initializeRepository( repository );
 
         CheckoutMojo mojo = (CheckoutMojo) lookupMojo( "checkout", getTestFile(
@@ -100,7 +99,7 @@
         throws Exception
     {
         FileUtils.forceDelete( checkoutDir );
-        
+
         checkoutDir.mkdirs();
         CheckoutMojo mojo = (CheckoutMojo) lookupMojo( "checkout", getTestFile(
             "src/test/resources/mojos/checkout/checkoutWithoutConnectionUrl.xml" ) );
@@ -121,7 +120,7 @@
         throws Exception
     {
         FileUtils.forceDelete( checkoutDir );
-        
+
         checkoutDir.mkdirs();
 
         CheckoutMojo mojo = (CheckoutMojo) lookupMojo( "checkout", getTestFile(
@@ -132,14 +131,14 @@
         mojo.execute();
 
         assertTrue( checkoutDir.listFiles().length > 0  );
-        assertFalse( new File( checkoutDir, ".svn" ).exists() );    
+        assertFalse( new File( checkoutDir, ".svn" ).exists() );
     }
-    
+
     public void testExcludeInclude()
         throws Exception
     {
         FileUtils.forceDelete( checkoutDir );
-        
+
         checkoutDir.mkdirs();
 
         SvnScmTestUtils.initializeRepository( repository );
diff --git a/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/RemoveMojoTest.java b/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/RemoveMojoTest.java
index fc2054b..f2728b3 100644
--- a/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/RemoveMojoTest.java
+++ b/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/RemoveMojoTest.java
@@ -39,7 +39,7 @@
 
         if ( !ScmTestCase.isSystemCmd( "p4" ) )
         {
-            System.out.println( "'skip test as p4 is not available" );
+            ScmTestCase.printSystemCmdUnavail( "p4", getName() );
             return;
         }
 
@@ -73,7 +73,7 @@
     {
         if ( !ScmTestCase.isSystemCmd( "p4" ) )
         {
-            System.out.println( "'skip test as p4 is not available" );
+            ScmTestCase.printSystemCmdUnavail( "p4", getName() );
             return;
         }
         String testConfig = "src/test/resources/mojos/remove/removeWithPerforceNoIncludes.xml";
diff --git a/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/StatusMojoTest.java b/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/StatusMojoTest.java
index e184410..37b401e 100644
--- a/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/StatusMojoTest.java
+++ b/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/StatusMojoTest.java
@@ -37,8 +37,7 @@
     {
         if ( !ScmTestCase.isSystemCmd( SvnScmTestUtils.SVN_COMMAND_LINE ) )
         {
-            System.err.println( "'" + SvnScmTestUtils.SVN_COMMAND_LINE
-                + "' is not a system command. Ignored " + getName() + "." );
+            ScmTestCase.printSystemCmdUnavail( SvnScmTestUtils.SVN_COMMAND_LINE, getName() );
             return;
         }
 
diff --git a/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/TagMojoTest.java b/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/TagMojoTest.java
index eaecbf8..ca5495b 100644
--- a/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/TagMojoTest.java
+++ b/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/TagMojoTest.java
@@ -53,8 +53,7 @@
 
         if ( !ScmTestCase.isSystemCmd( SvnScmTestUtils.SVNADMIN_COMMAND_LINE ) )
         {
-            System.err.println( "'" + SvnScmTestUtils.SVNADMIN_COMMAND_LINE
-                + "' is not a system command. Ignored setUp." );
+            ScmTestCase.printSystemCmdUnavail( SvnScmTestUtils.SVNADMIN_COMMAND_LINE, "setUp" );
             return;
         }
 
@@ -79,8 +78,7 @@
     {
         if ( !ScmTestCase.isSystemCmd( SvnScmTestUtils.SVNADMIN_COMMAND_LINE ) )
         {
-            System.err.println( "'" + SvnScmTestUtils.SVNADMIN_COMMAND_LINE
-                + "' is not a system command. Ignored " + getName() + "." );
+            ScmTestCase.printSystemCmdUnavail( SvnScmTestUtils.SVNADMIN_COMMAND_LINE, getName() );
             return;
         }
 
@@ -96,8 +94,7 @@
 
         if ( !ScmTestCase.isSystemCmd( SvnScmTestUtils.SVN_COMMAND_LINE ) )
         {
-            System.err.println( "'" + SvnScmTestUtils.SVN_COMMAND_LINE
-                + "' is not a system command. Ignored " + getName() + "." );
+            ScmTestCase.printSystemCmdUnavail( SvnScmTestUtils.SVN_COMMAND_LINE, getName() );
             return;
         }
 
@@ -127,8 +124,7 @@
     {
         if ( !ScmTestCase.isSystemCmd( SvnScmTestUtils.SVN_COMMAND_LINE ) )
         {
-            System.err.println( "'" + SvnScmTestUtils.SVN_COMMAND_LINE
-                + "' is not a system command. Ignored " + getName() + "." );
+            ScmTestCase.printSystemCmdUnavail( SvnScmTestUtils.SVN_COMMAND_LINE, getName() );
             return;
         }
 
diff --git a/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/UpdateMojoTest.java b/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/UpdateMojoTest.java
index c60d137..83081f1 100644
--- a/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/UpdateMojoTest.java
+++ b/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/UpdateMojoTest.java
@@ -55,8 +55,7 @@
     {
         if ( !ScmTestCase.isSystemCmd( SvnScmTestUtils.SVNADMIN_COMMAND_LINE ) )
         {
-            System.err.println( "'" + SvnScmTestUtils.SVNADMIN_COMMAND_LINE
-                + "' is not a system command. Ignored " + getName() + "." );
+            ScmTestCase.printSystemCmdUnavail( SvnScmTestUtils.SVNADMIN_COMMAND_LINE, getName() );
             return;
         }
 
diff --git a/maven-scm-providers/maven-scm-provider-perforce/src/test/java/org/apache/maven/scm/provider/perforce/command/PerforceInfoCommandTest.java b/maven-scm-providers/maven-scm-provider-perforce/src/test/java/org/apache/maven/scm/provider/perforce/command/PerforceInfoCommandTest.java
index 58e0249..e8da845 100644
--- a/maven-scm-providers/maven-scm-provider-perforce/src/test/java/org/apache/maven/scm/provider/perforce/command/PerforceInfoCommandTest.java
+++ b/maven-scm-providers/maven-scm-provider-perforce/src/test/java/org/apache/maven/scm/provider/perforce/command/PerforceInfoCommandTest.java
@@ -38,6 +38,12 @@
 
         PerforceScmProviderRepository p4Repo = (PerforceScmProviderRepository) repo.getProviderRepository();
 
+       if ( !ScmTestCase.isSystemCmd( "p4" ) )
+       {
+           ScmTestCase.printSystemCmdUnavail( "p4", getName() );
+           return;
+       }
+
         PerforceScmProvider prov = new PerforceScmProvider();
         PerforceTagCommand cmd = new PerforceTagCommand();
         cmd.setLogger( prov.getLogger() );
diff --git a/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvstest/src/main/java/org/apache/maven/scm/provider/cvslib/command/changelog/CvsChangeLogCommandTest.java b/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvstest/src/main/java/org/apache/maven/scm/provider/cvslib/command/changelog/CvsChangeLogCommandTest.java
index 3871276..246fa46 100644
--- a/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvstest/src/main/java/org/apache/maven/scm/provider/cvslib/command/changelog/CvsChangeLogCommandTest.java
+++ b/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvstest/src/main/java/org/apache/maven/scm/provider/cvslib/command/changelog/CvsChangeLogCommandTest.java
@@ -19,6 +19,7 @@
  * under the License.
  */
 
+import org.apache.maven.scm.ScmTestCase;
 import org.apache.maven.scm.command.changelog.ChangeLogScmResult;
 import org.apache.maven.scm.command.changelog.ChangeLogSet;
 import org.apache.maven.scm.manager.ScmManager;
@@ -77,8 +78,7 @@
     {
         if ( !isSystemCmd( CvsScmTestUtils.CVS_COMMAND_LINE ) )
         {
-            System.err.println( "'" + CvsScmTestUtils.CVS_COMMAND_LINE + "' is not a system command. Ignored "
-                + getName() + "." );
+            ScmTestCase.printSystemCmdUnavail( CvsScmTestUtils.CVS_COMMAND_LINE, getName() );
             return;
         }
 
diff --git a/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvstest/src/main/java/org/apache/maven/scm/provider/cvslib/command/checkout/CvsCheckoutCommandTest.java b/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvstest/src/main/java/org/apache/maven/scm/provider/cvslib/command/checkout/CvsCheckoutCommandTest.java
index 9337b9a..76c15a8 100644
--- a/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvstest/src/main/java/org/apache/maven/scm/provider/cvslib/command/checkout/CvsCheckoutCommandTest.java
+++ b/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvstest/src/main/java/org/apache/maven/scm/provider/cvslib/command/checkout/CvsCheckoutCommandTest.java
@@ -21,6 +21,7 @@
 
 import org.apache.maven.scm.ScmFile;
 import org.apache.maven.scm.ScmFileStatus;
+import org.apache.maven.scm.ScmTestCase;
 import org.apache.maven.scm.command.checkout.CheckOutScmResult;
 import org.apache.maven.scm.manager.ScmManager;
 import org.apache.maven.scm.provider.cvslib.AbstractCvsScmTest;
@@ -51,8 +52,7 @@
     {
         if ( !isSystemCmd( CvsScmTestUtils.CVS_COMMAND_LINE ) )
         {
-            System.err.println( "'" + CvsScmTestUtils.CVS_COMMAND_LINE + "' is not a system command. Ignored "
-                + getName() + "." );
+            ScmTestCase.printSystemCmdUnavail( CvsScmTestUtils.CVS_COMMAND_LINE, getName() );
             return;
         }
 
@@ -86,8 +86,7 @@
     {
         if ( !isSystemCmd( CvsScmTestUtils.CVS_COMMAND_LINE ) )
         {
-            System.err.println( "'" + CvsScmTestUtils.CVS_COMMAND_LINE + "' is not a system command. Ignored "
-                + getName() + "." );
+            ScmTestCase.printSystemCmdUnavail( CvsScmTestUtils.CVS_COMMAND_LINE, getName() );
             return;
         }
 
diff --git a/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvstest/src/main/java/org/apache/maven/scm/provider/cvslib/command/update/CvsUpdateCommandTest.java b/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvstest/src/main/java/org/apache/maven/scm/provider/cvslib/command/update/CvsUpdateCommandTest.java
index 0657f62..976ab10 100644
--- a/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvstest/src/main/java/org/apache/maven/scm/provider/cvslib/command/update/CvsUpdateCommandTest.java
+++ b/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvstest/src/main/java/org/apache/maven/scm/provider/cvslib/command/update/CvsUpdateCommandTest.java
@@ -22,6 +22,7 @@
 import org.apache.maven.scm.ScmFile;
 import org.apache.maven.scm.ScmFileSet;
 import org.apache.maven.scm.ScmFileStatus;
+import org.apache.maven.scm.ScmTestCase;
 import org.apache.maven.scm.command.update.UpdateScmResult;
 import org.apache.maven.scm.manager.ScmManager;
 import org.apache.maven.scm.provider.cvslib.AbstractCvsScmTest;
@@ -84,8 +85,7 @@
         {
             if ( !isSystemCmd( CvsScmTestUtils.CVS_COMMAND_LINE ) )
             {
-                System.err.println(
-                    "'" + CvsScmTestUtils.CVS_COMMAND_LINE + "' is not a system command. Ignored " + getName() + "." );
+                ScmTestCase.printSystemCmdUnavail( CvsScmTestUtils.CVS_COMMAND_LINE, getName() );
                 return;
             }
 
diff --git a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitCheckInCommandNoBranchTest.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitCheckInCommandNoBranchTest.java
index ff985f7..3a30cb6 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitCheckInCommandNoBranchTest.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitCheckInCommandNoBranchTest.java
@@ -53,7 +53,7 @@
     {
         if ( !ScmTestCase.isSystemCmd( "git" ) )
         {
-            System.out.println( "Skip test which requires Git native executable to be in PATH" );
+            ScmTestCase.printSystemCmdUnavail( "git", getName() );
             return;
         }
         File repo_orig = new File( "src/test/resources/repository_no_branch" );
diff --git a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitCheckInCommandTest.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitCheckInCommandTest.java
index ddb25fd..07dbfdb 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitCheckInCommandTest.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitCheckInCommandTest.java
@@ -95,7 +95,7 @@
 
         if ( !ScmTestCase.isSystemCmd( "git" ) )
         {
-            System.out.println( "Skip test which requires Git native executable to be in PATH" );
+            ScmTestCase.printSystemCmdUnavail( "git", getName() );
             return;
         }
 
@@ -145,7 +145,7 @@
 
         if ( !ScmTestCase.isSystemCmd( "git" ) )
         {
-            System.out.println( "Skip test which requires Git native executable to be in PATH" );
+            ScmTestCase.printSystemCmdUnavail( "git", getName() );
             return;
         }
 
diff --git a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/checkout/GitExeCheckOutCommandNoBranchTest.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/checkout/GitExeCheckOutCommandNoBranchTest.java
index b141783..7b02bb8 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/checkout/GitExeCheckOutCommandNoBranchTest.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/checkout/GitExeCheckOutCommandNoBranchTest.java
@@ -59,7 +59,7 @@
     {
         if ( !ScmTestCase.isSystemCmd( "git" ) )
         {
-            System.out.println( "Skip test which requires Git native executable to be in PATH" );
+            ScmTestCase.printSystemCmdUnavail( "git", getName() );
             return;
         }
         CheckOutScmResult result = checkoutRepo();
@@ -71,7 +71,7 @@
     {
         if ( !ScmTestCase.isSystemCmd( "git" ) )
         {
-            System.out.println( "Skip test which requires Git native executable to be in PATH" );
+            ScmTestCase.printSystemCmdUnavail( "git", getName() );
             return;
         }
         CheckOutScmResult result = checkoutRepo();
diff --git a/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTestCase.java b/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTestCase.java
index d618ceb..f43d82a 100644
--- a/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTestCase.java
+++ b/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTestCase.java
@@ -384,4 +384,9 @@
             return false;
         }
     }
+
+    public static void printSystemCmdUnavail( String cmd, String testName )
+    {
+        System.err.printf( "'%s' is not a system command. Ignored %s.%n", cmd, testName );
+    }
 }