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:55 UTC

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

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