You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by mi...@apache.org on 2022/05/25 22:50:54 UTC

[maven-scm] branch SCM-939 created (now 262e8afc6)

This is an automated email from the ASF dual-hosted git repository.

michaelo pushed a change to branch SCM-939
in repository https://gitbox.apache.org/repos/asf/maven-scm.git


      at 262e8afc6 [SCM-989] Tests fail if svn and/or git are not installed

This branch includes the following new commits:

     new 262e8afc6 [SCM-989] Tests fail if svn and/or git are not installed

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[maven-scm] 01/01: [SCM-989] Tests fail if svn and/or git are not installed

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

michaelo pushed a commit to branch SCM-939
in repository https://gitbox.apache.org/repos/asf/maven-scm.git

commit 262e8afc6e79b63a5c5e0e57de2cbf9434c7d7ee
Author: Michael Osipov <mi...@apache.org>
AuthorDate: Wed May 25 23:58:05 2022 +0200

    [SCM-989] Tests fail if svn and/or git are not installed
    
    This closes #149
---
 .../apache/maven/scm/plugin/BranchMojoTest.java    |  6 +++++
 .../apache/maven/scm/plugin/CheckoutMojoTest.java  | 24 +++++++++++++++++
 .../apache/maven/scm/plugin/ExportMojoTest.java    | 31 +++++++++++++++++++---
 .../org/apache/maven/scm/plugin/TagMojoTest.java   | 23 +++++++++++++++-
 .../org/apache/maven/scm/plugin/UntagMojoTest.java | 12 +++++++++
 .../apache/maven/scm/plugin/UpdateMojoTest.java    |  6 +++++
 .../checkin/GitCheckInCommandNoBranchTest.java     |  9 +++----
 .../command/checkin/GitCheckInCommandTest.java     | 14 +++-------
 .../GitExeCheckOutCommandNoBranchTest.java         | 14 +++-------
 .../gitexe/command/info/GitInfoCommandTest.java    | 10 +++++++
 .../command/list/SvnExeListCommandTckTest.java     |  7 +++++
 .../remoteinfo/SvnRemoteInfoCommandTest.java       |  6 +++++
 .../java/org/apache/maven/scm/ScmTestCase.java     |  7 +++++
 13 files changed, 140 insertions(+), 29 deletions(-)

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 ef7884782..d8be9105a 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
@@ -59,6 +59,12 @@ public class BranchMojoTest
 
         SvnScmTestUtils.initializeRepository( repository );
 
+        if ( !ScmTestCase.isSystemCmd( SvnScmTestUtils.SVN_COMMAND_LINE ) )
+        {
+            ScmTestCase.printSystemCmdUnavail( SvnScmTestUtils.SVN_COMMAND_LINE, "setUp" );
+            return;
+        }
+
         CheckoutMojo checkoutMojo = (CheckoutMojo) lookupMojo( "checkout", getTestFile(
             "src/test/resources/mojos/checkout/checkoutWithConnectionUrl.xml" ) );
         checkoutMojo.setWorkingDirectory( new File( getBasedir() ) );
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 d106a2087..89fd93784 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
@@ -81,6 +81,12 @@ public class CheckoutMojoTest
 
         SvnScmTestUtils.initializeRepository( repository );
 
+        if ( !ScmTestCase.isSystemCmd( SvnScmTestUtils.SVN_COMMAND_LINE ) )
+        {
+            ScmTestCase.printSystemCmdUnavail( SvnScmTestUtils.SVN_COMMAND_LINE, getName() );
+            return;
+        }
+
         CheckoutMojo mojo = (CheckoutMojo) lookupMojo( "checkout", getTestFile(
             "src/test/resources/mojos/checkout/checkoutWithConnectionUrl.xml" ) );
         mojo.setWorkingDirectory( new File( getBasedir() ) );
@@ -119,6 +125,12 @@ public class CheckoutMojoTest
     public void testUseExport()
         throws Exception
     {
+        if ( !ScmTestCase.isSystemCmd( SvnScmTestUtils.SVN_COMMAND_LINE ) )
+        {
+            ScmTestCase.printSystemCmdUnavail( SvnScmTestUtils.SVN_COMMAND_LINE, getName() );
+            return;
+        }
+
         FileUtils.forceDelete( checkoutDir );
 
         checkoutDir.mkdirs();
@@ -137,12 +149,24 @@ public class CheckoutMojoTest
     public void testExcludeInclude()
         throws Exception
     {
+        if ( !ScmTestCase.isSystemCmd( SvnScmTestUtils.SVNADMIN_COMMAND_LINE ) )
+        {
+            ScmTestCase.printSystemCmdUnavail( SvnScmTestUtils.SVNADMIN_COMMAND_LINE, getName() );
+            return;
+        }
+
         FileUtils.forceDelete( checkoutDir );
 
         checkoutDir.mkdirs();
 
         SvnScmTestUtils.initializeRepository( repository );
 
+        if ( !ScmTestCase.isSystemCmd( SvnScmTestUtils.SVN_COMMAND_LINE ) )
+        {
+            ScmTestCase.printSystemCmdUnavail( SvnScmTestUtils.SVN_COMMAND_LINE, getName() );
+            return;
+        }
+
         CheckoutMojo mojo = (CheckoutMojo) lookupMojo(
                                                        "checkout",
                                                        getTestFile( "src/test/resources/mojos/checkout/checkoutWithExcludesIncludes.xml" ) );
diff --git a/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/ExportMojoTest.java b/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/ExportMojoTest.java
index 3f90514d1..f0aa46647 100644
--- a/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/ExportMojoTest.java
+++ b/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/ExportMojoTest.java
@@ -6,9 +6,9 @@ package org.apache.maven.scm.plugin;
  * copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance with the License. You may obtain a
  * copy of the License at
- * 
+ *
  * http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software distributed under the License
  * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
  * or implied. See the License for the specific language governing permissions and limitations under
@@ -18,6 +18,7 @@ package org.apache.maven.scm.plugin;
 import java.io.File;
 
 import org.apache.maven.plugin.testing.AbstractMojoTestCase;
+import org.apache.maven.scm.ScmTestCase;
 import org.apache.maven.scm.provider.svn.SvnScmTestUtils;
 import org.codehaus.plexus.util.FileUtils;
 
@@ -46,8 +47,20 @@ public class ExportMojoTest
     public void testExport()
         throws Exception
     {
+        if ( !ScmTestCase.isSystemCmd( SvnScmTestUtils.SVNADMIN_COMMAND_LINE ) )
+        {
+            ScmTestCase.printSystemCmdUnavail( SvnScmTestUtils.SVNADMIN_COMMAND_LINE, getName() );
+            return;
+        }
+
         SvnScmTestUtils.initializeRepository( repository );
 
+        if ( !ScmTestCase.isSystemCmd( SvnScmTestUtils.SVN_COMMAND_LINE ) )
+        {
+            ScmTestCase.printSystemCmdUnavail( SvnScmTestUtils.SVN_COMMAND_LINE, getName() );
+            return;
+        }
+
         ExportMojo mojo = (ExportMojo) lookupMojo( "export", getTestFile( "src/test/resources/mojos/export/export.xml" ) );
 
         mojo.setExportDirectory( exportDir.getAbsoluteFile() );
@@ -77,10 +90,22 @@ public class ExportMojoTest
     public void testExcludeInclude()
         throws Exception
     {
+        if ( !ScmTestCase.isSystemCmd( SvnScmTestUtils.SVNADMIN_COMMAND_LINE ) )
+        {
+            ScmTestCase.printSystemCmdUnavail( SvnScmTestUtils.SVNADMIN_COMMAND_LINE, getName() );
+            return;
+        }
+
         SvnScmTestUtils.initializeRepository( repository );
-        
+
         exportDir.mkdirs();
 
+        if ( !ScmTestCase.isSystemCmd( SvnScmTestUtils.SVN_COMMAND_LINE ) )
+        {
+            ScmTestCase.printSystemCmdUnavail( SvnScmTestUtils.SVN_COMMAND_LINE, getName() );
+            return;
+        }
+
         ExportMojo mojo = (ExportMojo) lookupMojo(
                                                        "export",
                                                        getTestFile( "src/test/resources/mojos/export/exportWithExcludesIncludes.xml" ) );
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 f08a27d33..f21afb219 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
@@ -21,6 +21,7 @@ package org.apache.maven.scm.plugin;
 
 import org.apache.maven.plugin.testing.AbstractMojoTestCase;
 import org.apache.maven.scm.ScmTestCase;
+import org.apache.maven.scm.provider.git.GitScmTestUtils;
 import org.apache.maven.scm.provider.svn.SvnScmTestUtils;
 import org.codehaus.plexus.util.FileUtils;
 import org.junit.Assume;
@@ -51,10 +52,20 @@ public class TagMojoTest
 
         FileUtils.forceDelete( repository );
 
-        Assume.assumeTrue( ScmTestCase.isSystemCmd( SvnScmTestUtils.SVNADMIN_COMMAND_LINE ) );
+        if ( !ScmTestCase.isSystemCmd( SvnScmTestUtils.SVNADMIN_COMMAND_LINE ) )
+        {
+            ScmTestCase.printSystemCmdUnavail( SvnScmTestUtils.SVNADMIN_COMMAND_LINE, "setUp" );
+            return;
+        }
 
         SvnScmTestUtils.initializeRepository( repository );
 
+        if ( !ScmTestCase.isSystemCmd( SvnScmTestUtils.SVN_COMMAND_LINE ) )
+        {
+            ScmTestCase.printSystemCmdUnavail( SvnScmTestUtils.SVN_COMMAND_LINE, "setUp" );
+            return;
+        }
+
         CheckoutMojo checkoutMojo = (CheckoutMojo) lookupMojo( "checkout", getTestFile(
             "src/test/resources/mojos/checkout/checkoutWithConnectionUrl.xml" ) );
         checkoutMojo.setWorkingDirectory( new File( getBasedir() ) );
@@ -77,6 +88,11 @@ public class TagMojoTest
     public void testTag()
         throws Exception
     {
+        if ( !ScmTestCase.isSystemCmd( SvnScmTestUtils.SVN_COMMAND_LINE ) )
+        {
+            ScmTestCase.printSystemCmdUnavail( SvnScmTestUtils.SVN_COMMAND_LINE, getName() );
+            return;
+        }
 
         TagMojo mojo = (TagMojo) lookupMojo( "tag", getTestFile( "src/test/resources/mojos/tag/tag.xml" ) );
         mojo.setWorkingDirectory( checkoutDir );
@@ -106,6 +122,11 @@ public class TagMojoTest
     public void testTagWithTimestamp()
         throws Exception
     {
+        if ( !ScmTestCase.isSystemCmd( SvnScmTestUtils.SVN_COMMAND_LINE ) )
+        {
+            ScmTestCase.printSystemCmdUnavail( SvnScmTestUtils.SVN_COMMAND_LINE, getName() );
+            return;
+        }
 
         TagMojo mojo =
             (TagMojo) lookupMojo( "tag", getTestFile( "src/test/resources/mojos/tag/tagWithTimestamp.xml" ) );
diff --git a/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/UntagMojoTest.java b/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/UntagMojoTest.java
index 07ac9edd5..b5c418940 100644
--- a/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/UntagMojoTest.java
+++ b/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/UntagMojoTest.java
@@ -23,6 +23,7 @@ import java.io.File;
 
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.testing.AbstractMojoTestCase;
+import org.apache.maven.scm.ScmTestCase;
 import org.apache.maven.scm.provider.git.GitScmTestUtils;
 import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.StringUtils;
@@ -43,6 +44,11 @@ public class UntagMojoTest
 
         repository = getTestFile( "target/repository" );
 
+        if ( !ScmTestCase.isSystemCmd( GitScmTestUtils.GIT_COMMAND_LINE ) )
+        {
+            ScmTestCase.printSystemCmdUnavail( GitScmTestUtils.GIT_COMMAND_LINE, "setUp" );
+            return;
+        }
 
         GitScmTestUtils.initRepo( "src/test/resources/git", repository, checkoutDir );
 
@@ -66,6 +72,12 @@ public class UntagMojoTest
     public void testUntag()
         throws Exception
     {
+        if ( !ScmTestCase.isSystemCmd( GitScmTestUtils.GIT_COMMAND_LINE ) )
+        {
+            ScmTestCase.printSystemCmdUnavail( GitScmTestUtils.GIT_COMMAND_LINE, getName() );
+            return;
+        }
+
         TagMojo tagMojo = (TagMojo) lookupMojo( "tag", getTestFile( "src/test/resources/mojos/untag/tag.xml" ) );
         tagMojo.setWorkingDirectory( checkoutDir );
         tagMojo.setConnectionUrl( getConnectionLocalAddress( tagMojo ) );
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 83081f128..bc88ccb4c 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
@@ -61,6 +61,12 @@ public class UpdateMojoTest
 
         SvnScmTestUtils.initializeRepository( repository );
 
+        if ( !ScmTestCase.isSystemCmd( SvnScmTestUtils.SVN_COMMAND_LINE ) )
+        {
+            ScmTestCase.printSystemCmdUnavail( SvnScmTestUtils.SVN_COMMAND_LINE, getName() );
+            return;
+        }
+
         CheckoutMojo checkoutMojo = (CheckoutMojo) lookupMojo( "checkout", getTestFile(
             "src/test/resources/mojos/checkout/checkoutWithConnectionUrl.xml" ) );
 
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 8a445619c..16ffecfc9 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
@@ -33,6 +33,8 @@ import org.junit.Test;
 
 import java.io.File;
 
+import static org.apache.maven.scm.provider.git.GitScmTestUtils.GIT_COMMAND_LINE;
+
 import static org.junit.Assert.assertEquals;
 
 /**
@@ -58,11 +60,8 @@ public class GitCheckInCommandNoBranchTest
     public void testCheckinNoBranch()
         throws Exception
     {
-        if ( !ScmTestCase.isSystemCmd( "git" ) )
-        {
-            ScmTestCase.printSystemCmdUnavail( "git", getName() );
-            return;
-        }
+        checkScmPresence( GIT_COMMAND_LINE );
+
         File repo_orig = new File( "src/test/resources/repository_no_branch" );
         File repo = getTestFile( "target/git_copy" );
         FileUtils.deleteDirectory( repo );
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 4f7050aa1..ffd512702 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
@@ -37,6 +37,8 @@ import org.junit.Test;
 
 import java.io.File;
 
+import static org.apache.maven.scm.provider.git.GitScmTestUtils.GIT_COMMAND_LINE;
+
 import static org.junit.Assert.assertTrue;
 
 /**
@@ -102,11 +104,7 @@ public class GitCheckInCommandTest
         File repo = getRepositoryRoot();
         File checkedOutRepo = getWorkingCopy();
 
-        if ( !ScmTestCase.isSystemCmd( "git" ) )
-        {
-            ScmTestCase.printSystemCmdUnavail( "git", getName() );
-            return;
-        }
+        checkScmPresence( GIT_COMMAND_LINE );
 
         GitScmTestUtils.initRepo("src/test/resources/repository/", getRepositoryRoot(), getWorkingDirectory());
 
@@ -153,11 +151,7 @@ public class GitCheckInCommandTest
         File repo = getRepositoryRoot();
         File checkedOutRepo = getWorkingCopy();
 
-        if ( !ScmTestCase.isSystemCmd( "git" ) )
-        {
-            ScmTestCase.printSystemCmdUnavail( "git", getName() );
-            return;
-        }
+        checkScmPresence( GIT_COMMAND_LINE );
 
         GitScmTestUtils.initRepo( "src/test/resources/repository/", getRepositoryRoot(), getWorkingDirectory() );
 
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 3079d8ff5..0994da754 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
@@ -30,6 +30,8 @@ import org.junit.Test;
 
 import java.io.File;
 
+import static org.apache.maven.scm.provider.git.GitScmTestUtils.GIT_COMMAND_LINE;
+
 import static org.junit.Assert.assertEquals;
 
 /**
@@ -64,11 +66,7 @@ public class GitExeCheckOutCommandNoBranchTest
     public void testCheckoutNoBranch()
         throws Exception
     {
-        if ( !ScmTestCase.isSystemCmd( "git" ) )
-        {
-            ScmTestCase.printSystemCmdUnavail( "git", getName() );
-            return;
-        }
+        checkScmPresence( GIT_COMMAND_LINE );
         CheckOutScmResult result = checkoutRepo();
         assertEquals( 0, result.getCheckedOutFiles().size() );
     }
@@ -77,11 +75,7 @@ public class GitExeCheckOutCommandNoBranchTest
     public void testDoubleCheckoutNoBranch()
         throws Exception
     {
-        if ( !ScmTestCase.isSystemCmd( "git" ) )
-        {
-            ScmTestCase.printSystemCmdUnavail( "git", getName() );
-            return;
-        }
+        checkScmPresence( GIT_COMMAND_LINE );
         CheckOutScmResult result = checkoutRepo();
         assertEquals( 0, result.getCheckedOutFiles().size() );
         CheckOutScmResult result2 = checkoutRepo();
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/info/GitInfoCommandTest.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/info/GitInfoCommandTest.java
index 7319f4a82..8865bb834 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/info/GitInfoCommandTest.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/info/GitInfoCommandTest.java
@@ -31,6 +31,8 @@ import org.junit.Test;
 
 import java.io.File;
 
+import static org.apache.maven.scm.provider.git.GitScmTestUtils.GIT_COMMAND_LINE;
+
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
@@ -46,6 +48,8 @@ public class GitInfoCommandTest
     public void testInfoCommand()
         throws Exception
     {
+        checkScmPresence( GIT_COMMAND_LINE );
+
         GitScmTestUtils.initRepo( "src/test/resources/git/info", getRepositoryRoot(), getWorkingCopy() );
 
         ScmProvider provider = getScmManager().getProviderByUrl( getScmUrl() );
@@ -62,6 +66,8 @@ public class GitInfoCommandTest
     public void testInfoCommandWithShortRevision()
         throws Exception
     {
+        checkScmPresence( GIT_COMMAND_LINE );
+
         GitScmTestUtils.initRepo( "src/test/resources/git/info", getRepositoryRoot(), getWorkingCopy() );
 
         ScmProvider provider = getScmManager().getProviderByUrl( getScmUrl() );
@@ -79,6 +85,8 @@ public class GitInfoCommandTest
     public void testInfoCommandWithNegativeShortRevision()
         throws Exception
     {
+        checkScmPresence( GIT_COMMAND_LINE );
+
         GitScmTestUtils.initRepo( "src/test/resources/git/info", getRepositoryRoot(), getWorkingCopy() );
 
         ScmProvider provider = getScmManager().getProviderByUrl( getScmUrl() );
@@ -96,6 +104,8 @@ public class GitInfoCommandTest
     public void testInfoCommandWithZeroShortRevision()
         throws Exception
     {
+        checkScmPresence( GIT_COMMAND_LINE );
+
         GitScmTestUtils.initRepo( "src/test/resources/git/info", getRepositoryRoot(), getWorkingCopy() );
 
         ScmProvider provider = getScmManager().getProviderByUrl( getScmUrl() );
diff --git a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/list/SvnExeListCommandTckTest.java b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/list/SvnExeListCommandTckTest.java
index f0f0a8ea9..add8b813b 100644
--- a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/list/SvnExeListCommandTckTest.java
+++ b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/list/SvnExeListCommandTckTest.java
@@ -21,6 +21,8 @@ package org.apache.maven.scm.provider.svn.svnexe.command.list;
 
 import org.apache.maven.scm.provider.svn.command.list.SvnListCommandTckTest;
 
+import static org.apache.maven.scm.provider.svn.SvnScmTestUtils.SVN_COMMAND_LINE;
+
 /**
  * @author <a href="mailto:carlos@apache.org">Carlos Sanchez</a>
  *
@@ -28,4 +30,9 @@ import org.apache.maven.scm.provider.svn.command.list.SvnListCommandTckTest;
 public class SvnExeListCommandTckTest
     extends SvnListCommandTckTest
 {
+    @Override
+    public String getScmProviderCommand()
+    {
+        return SVN_COMMAND_LINE;
+    }
 }
diff --git a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/remoteinfo/SvnRemoteInfoCommandTest.java b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/remoteinfo/SvnRemoteInfoCommandTest.java
index 03171c412..ae6a36bfa 100644
--- a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/remoteinfo/SvnRemoteInfoCommandTest.java
+++ b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/remoteinfo/SvnRemoteInfoCommandTest.java
@@ -22,6 +22,8 @@ import org.apache.maven.scm.ScmTestCase;
 import org.apache.maven.scm.provider.svn.repository.SvnScmProviderRepository;
 import org.junit.Test;
 
+import static org.apache.maven.scm.provider.svn.SvnScmTestUtils.SVN_COMMAND_LINE;
+
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
@@ -35,6 +37,8 @@ public class SvnRemoteInfoCommandTest
     public void testExist()
         throws Exception
     {
+        checkScmPresence( SVN_COMMAND_LINE );
+
         SvnRemoteInfoCommand svnRemoteInfoCommand = new SvnRemoteInfoCommand();
 
         SvnScmProviderRepository svnScmProviderRepository =
@@ -46,6 +50,8 @@ public class SvnRemoteInfoCommandTest
     public void testNotExist()
         throws Exception
     {
+        checkScmPresence( SVN_COMMAND_LINE );
+
         SvnRemoteInfoCommand svnRemoteInfoCommand = new SvnRemoteInfoCommand();
 
         SvnScmProviderRepository svnScmProviderRepository =
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 8ab8be9b9..f853a4fbf 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
@@ -41,6 +41,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
+import static org.junit.Assume.assumeTrue;
 
 /**
  * Base class for all SCM tests. Consumers will typically
@@ -344,6 +345,12 @@ public abstract class ScmTestCase
         assertEquals( expectedCommandLineAsExecuted, actualCommandLineAsExecuted );
     }
 
+    public static void checkScmPresence( String scmProviderCommand )
+    {
+        assumeTrue( "Skipping tests because the required command '" + scmProviderCommand + "' is not available.",
+            ScmTestCase.isSystemCmd( scmProviderCommand ) );
+    }
+
     /**
      * @param cmd the executable to run, not null.
      * @return true if and only if the command is on the path