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/23 20:23:14 UTC

[maven-scm] 01/01: [SCM-981] Several integration tests are never run and fail if you do

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

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

commit a9f2dfd54a1391698d49ac8d642b4c7406268d36
Author: Michael Osipov <mi...@apache.org>
AuthorDate: Mon May 23 21:52:13 2022 +0200

    [SCM-981] Several integration tests are never run and fail if you do
    
    This closes #140
---
 .../hg/command/changelog/HgChangeLogConsumer.java  |  1 -
 .../apache/maven/scm/provider/hg/HgRepoUtils.java  |  2 ++
 .../hg/command/blame/HgBlameCommandTckTest.java    | 10 ++++++++-
 .../changelog/HgChangeLogCommandTckTest.java       |  8 +++++++
 .../command/checkin/HgCheckInCommandTckTest.java   |  8 +++++++
 .../command/checkout/HgCheckOutCommandTckTest.java |  8 +++++++
 .../hg/command/diff/HgDiffCommandTckTest.java      |  8 +++++++
 .../hg/command/status/HgStatusCommandTckTest.java  |  8 +++++++
 .../hg/command/tag/HgTagCommandTckTest.java        | 10 ++++++++-
 .../hg/command/update/HgUpdateCommandTckTest.java  |  8 +++++++
 .../local/command/update/LocalUpdateCommand.java   |  2 +-
 .../command/blame/GitExeBlameCommandTckTest.java   |  7 ++++++
 .../command/branch/GitExeBranchCommandTckTest.java |  8 +++++++
 .../changelog/GitExeChangeLogCommandTckTest.java   | 14 +++++++++---
 .../checkin/GitExeCheckInCommandTckTest.java       | 20 +++++++++++------
 .../checkout/GitExeCheckOutCommandTckTest.java     |  8 ++++++-
 .../command/diff/GitExeDiffCommandTckTest.java     |  8 +++++++
 .../remoteinfo/GitExeRemoteInfoCommandTckTest.java |  6 ++++++
 .../command/status/GitExeStatusCommandTckTest.java | 20 +++++++++++------
 .../command/tag/GitExeTagCommandTckTest.java       | 20 +++++++++++------
 .../command/untag/GitExeUntagCommandTckTest.java   | 20 +++++++++++------
 .../command/update/GitExeUpdateCommandTckTest.java |  8 +++++++
 .../maven/scm/provider/git/GitScmTestUtils.java    |  3 +++
 .../command/blame/SvnExeBlameCommandTckTest.java   |  7 ++++++
 .../command/branch/SvnExeBranchCommandTckTest.java |  7 ++++++
 .../checkin/SvnExeCheckInCommandTckTest.java       |  7 ++++++
 .../checkout/SvnExeCheckOutCommandTckTest.java     |  7 ++++++
 .../command/diff/SvnExeDiffCommandTckTest.java     |  7 ++++++
 .../command/mkdir/SvnExeMkdirCommandTckTest.java   |  7 ++++++
 .../remoteinfo/SvnExeRemoteInfoCommandTckTest.java |  6 ++++++
 .../command/status/SvnExeStatusCommandTckTest.java |  7 ++++++
 .../command/tag/SvnExeTagCommandTckTest.java       |  8 +++++++
 .../command/untag/SvnExeUntagCommandTckTest.java   |  8 +++++++
 .../command/update/SvnExeUpdateCommandTckTest.java |  8 ++++++-
 .../java/org/apache/maven/scm/ScmTckTestCase.java  | 25 +++++++++++++++++++++-
 pom.xml                                            |  3 +++
 36 files changed, 288 insertions(+), 34 deletions(-)

diff --git a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/changelog/HgChangeLogConsumer.java b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/changelog/HgChangeLogConsumer.java
index 93bf4368b..746876285 100644
--- a/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/changelog/HgChangeLogConsumer.java
+++ b/maven-scm-providers/maven-scm-provider-hg/src/main/java/org/apache/maven/scm/provider/hg/command/changelog/HgChangeLogConsumer.java
@@ -148,7 +148,6 @@ public class HgChangeLogConsumer
         {
             StringBuilder comment = new StringBuilder( currentChange.getComment() );
             comment.append( line );
-            comment.append( '\n' );
             currentChange.setComment( comment.toString() );
         }
     }
diff --git a/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/HgRepoUtils.java b/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/HgRepoUtils.java
index cc517b467..7fe580e45 100644
--- a/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/HgRepoUtils.java
+++ b/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/HgRepoUtils.java
@@ -38,6 +38,8 @@ import java.util.List;
 public class HgRepoUtils
         extends ScmTestCase
 {
+    /** 'hg' command line */
+    public static final String HG_COMMAND_LINE = "hg";
 
     public static final String[] filesInTestBranch =
         new String[]{"pom.xml", "readme.txt", "src/main/java/Application.java", "src/test/java/Test.java"};
diff --git a/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/command/blame/HgBlameCommandTckTest.java b/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/command/blame/HgBlameCommandTckTest.java
index a1e5ae5ca..0b080b283 100644
--- a/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/command/blame/HgBlameCommandTckTest.java
+++ b/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/command/blame/HgBlameCommandTckTest.java
@@ -26,7 +26,9 @@ import org.apache.maven.scm.tck.command.blame.BlameCommandTckTest;
 
 import java.util.List;
 
+import static org.apache.maven.scm.provider.hg.HgRepoUtils.HG_COMMAND_LINE;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotEquals;
 
 /**
  * @author Evgeny Mandrikov
@@ -34,6 +36,12 @@ import static org.junit.Assert.assertEquals;
 public class HgBlameCommandTckTest
     extends BlameCommandTckTest
 {
+    @Override
+    public String getScmProviderCommand()
+    {
+        return HG_COMMAND_LINE;
+    }
+
     public String getScmUrl()
         throws Exception
     {
@@ -51,6 +59,6 @@ public class HgBlameCommandTckTest
         List<BlameLine> lines = result.getLines();
         assertEquals( "Expected 1 line in blame", 1, lines.size() );
         BlameLine line = lines.get( 0 );
-        assertEquals( "0", line.getRevision() );
+        assertNotEquals( "0", line.getRevision() );
     }
 }
diff --git a/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/command/changelog/HgChangeLogCommandTckTest.java b/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/command/changelog/HgChangeLogCommandTckTest.java
index 5653f21c7..25bbcc56e 100644
--- a/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/command/changelog/HgChangeLogCommandTckTest.java
+++ b/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/command/changelog/HgChangeLogCommandTckTest.java
@@ -22,9 +22,17 @@ package org.apache.maven.scm.provider.hg.command.changelog;
 import org.apache.maven.scm.provider.hg.HgRepoUtils;
 import org.apache.maven.scm.tck.command.changelog.ChangeLogCommandTckTest;
 
+import static org.apache.maven.scm.provider.hg.HgRepoUtils.HG_COMMAND_LINE;
+
 public class HgChangeLogCommandTckTest
     extends ChangeLogCommandTckTest
 {
+    @Override
+    public String getScmProviderCommand()
+    {
+        return HG_COMMAND_LINE;
+    }
+
     public String getScmUrl()
         throws Exception
     {
diff --git a/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/command/checkin/HgCheckInCommandTckTest.java b/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/command/checkin/HgCheckInCommandTckTest.java
index 7e0f735db..3d6bf3863 100644
--- a/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/command/checkin/HgCheckInCommandTckTest.java
+++ b/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/command/checkin/HgCheckInCommandTckTest.java
@@ -19,12 +19,20 @@ package org.apache.maven.scm.provider.hg.command.checkin;
 import org.apache.maven.scm.provider.hg.HgRepoUtils;
 import org.apache.maven.scm.tck.command.checkin.CheckInCommandTckTest;
 
+import static org.apache.maven.scm.provider.hg.HgRepoUtils.HG_COMMAND_LINE;
+
 /**
  * @author <a href="mailto:thurner.rupert@ymono.net">thurner rupert</a>
  */
 public class HgCheckInCommandTckTest
     extends CheckInCommandTckTest
 {
+    @Override
+    public String getScmProviderCommand()
+    {
+        return HG_COMMAND_LINE;
+    }
+
     public String getScmUrl()
         throws Exception
     {
diff --git a/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/command/checkout/HgCheckOutCommandTckTest.java b/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/command/checkout/HgCheckOutCommandTckTest.java
index 87d643cf8..a4c686eb3 100644
--- a/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/command/checkout/HgCheckOutCommandTckTest.java
+++ b/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/command/checkout/HgCheckOutCommandTckTest.java
@@ -22,12 +22,20 @@ package org.apache.maven.scm.provider.hg.command.checkout;
 import org.apache.maven.scm.provider.hg.HgRepoUtils;
 import org.apache.maven.scm.tck.command.checkout.CheckOutCommandTckTest;
 
+import static org.apache.maven.scm.provider.hg.HgRepoUtils.HG_COMMAND_LINE;
+
 /**
  * @author <a href="mailto:thurner.rupert@ymono.net">thurner rupert</a>
  */
 public class HgCheckOutCommandTckTest
     extends CheckOutCommandTckTest
 {
+    @Override
+    public String getScmProviderCommand()
+    {
+        return HG_COMMAND_LINE;
+    }
+
     public String getScmUrl()
         throws Exception
     {
diff --git a/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/command/diff/HgDiffCommandTckTest.java b/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/command/diff/HgDiffCommandTckTest.java
index e671f40f0..d118ce8c7 100644
--- a/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/command/diff/HgDiffCommandTckTest.java
+++ b/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/command/diff/HgDiffCommandTckTest.java
@@ -38,9 +38,17 @@ import org.junit.Test;
 
 import static org.junit.Assert.assertTrue;
 
+import static org.apache.maven.scm.provider.hg.HgRepoUtils.HG_COMMAND_LINE;
+
 public class HgDiffCommandTckTest
     extends DiffCommandTckTest
 {
+    @Override
+    public String getScmProviderCommand()
+    {
+        return HG_COMMAND_LINE;
+    }
+
     public String getScmUrl()
         throws Exception
     {
diff --git a/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/command/status/HgStatusCommandTckTest.java b/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/command/status/HgStatusCommandTckTest.java
index 89841edc5..4ff7fff06 100644
--- a/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/command/status/HgStatusCommandTckTest.java
+++ b/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/command/status/HgStatusCommandTckTest.java
@@ -22,12 +22,20 @@ package org.apache.maven.scm.provider.hg.command.status;
 import org.apache.maven.scm.provider.hg.HgRepoUtils;
 import org.apache.maven.scm.tck.command.status.StatusCommandTckTest;
 
+import static org.apache.maven.scm.provider.hg.HgRepoUtils.HG_COMMAND_LINE;
+
 /**
  * @author <a href="mailto:thurner.rupert@ymono.net">thurner rupert</a>
  */
 public class HgStatusCommandTckTest
     extends StatusCommandTckTest
 {
+    @Override
+    public String getScmProviderCommand()
+    {
+        return HG_COMMAND_LINE;
+    }
+
     public String getScmUrl()
         throws Exception
     {
diff --git a/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/command/tag/HgTagCommandTckTest.java b/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/command/tag/HgTagCommandTckTest.java
index 22e5a38cf..a022a07f3 100644
--- a/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/command/tag/HgTagCommandTckTest.java
+++ b/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/command/tag/HgTagCommandTckTest.java
@@ -22,6 +22,8 @@ package org.apache.maven.scm.provider.hg.command.tag;
 import org.apache.maven.scm.provider.hg.HgRepoUtils;
 import org.apache.maven.scm.tck.command.tag.TagCommandTckTest;
 
+import static org.apache.maven.scm.provider.hg.HgRepoUtils.HG_COMMAND_LINE;
+
 /**
  * This test tests the tag command.
  *
@@ -31,7 +33,13 @@ import org.apache.maven.scm.tck.command.tag.TagCommandTckTest;
 public class HgTagCommandTckTest
         extends TagCommandTckTest
 {
-     public String getScmUrl()
+    @Override
+    public String getScmProviderCommand()
+    {
+        return HG_COMMAND_LINE;
+    }
+
+    public String getScmUrl()
         throws Exception
     {
         return HgRepoUtils.getScmUrl();
diff --git a/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/command/update/HgUpdateCommandTckTest.java b/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/command/update/HgUpdateCommandTckTest.java
index 39d7142b3..cb3733f1a 100644
--- a/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/command/update/HgUpdateCommandTckTest.java
+++ b/maven-scm-providers/maven-scm-provider-hg/src/test/java/org/apache/maven/scm/provider/hg/command/update/HgUpdateCommandTckTest.java
@@ -22,12 +22,20 @@ package org.apache.maven.scm.provider.hg.command.update;
 import org.apache.maven.scm.provider.hg.HgRepoUtils;
 import org.apache.maven.scm.tck.command.update.UpdateCommandTckTest;
 
+import static org.apache.maven.scm.provider.hg.HgRepoUtils.HG_COMMAND_LINE;
+
 /**
  * @author <a href="mailto:thurner.rupert@ymono.net">thurner rupert</a>
  */
 public class HgUpdateCommandTckTest
     extends UpdateCommandTckTest
 {
+    @Override
+    public String getScmProviderCommand()
+    {
+        return HG_COMMAND_LINE;
+    }
+
     public String getScmUrl()
         throws Exception
     {
diff --git a/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/update/LocalUpdateCommand.java b/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/update/LocalUpdateCommand.java
index cfe7fd95d..caf1df84b 100644
--- a/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/update/LocalUpdateCommand.java
+++ b/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/update/LocalUpdateCommand.java
@@ -190,7 +190,7 @@ public class LocalUpdateCommand
 
             int chop = baseDestination.getAbsolutePath().length();
 
-            String fileName = "/" + destinationFile.getAbsolutePath().substring( chop + 1 );
+            String fileName = destinationFile.getAbsolutePath().substring( chop + 1 );
 
             updatedFiles.add( new ScmFile( fileName, status ) );
         }
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/blame/GitExeBlameCommandTckTest.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/blame/GitExeBlameCommandTckTest.java
index 6642b17df..2713fda25 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/blame/GitExeBlameCommandTckTest.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/blame/GitExeBlameCommandTckTest.java
@@ -27,6 +27,7 @@ import org.junit.Test;
 
 import java.util.List;
 
+import static org.apache.maven.scm.provider.git.GitScmTestUtils.GIT_COMMAND_LINE;
 import static org.junit.Assert.assertEquals;
 
 /**
@@ -35,6 +36,12 @@ import static org.junit.Assert.assertEquals;
 public class GitExeBlameCommandTckTest
     extends GitBlameCommandTckTest
 {
+    @Override
+    public String getScmProviderCommand()
+    {
+        return GIT_COMMAND_LINE;
+    }
+
     public String getScmUrl()
         throws Exception
     {
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/branch/GitExeBranchCommandTckTest.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/branch/GitExeBranchCommandTckTest.java
index 5a673d8ef..d6083ef7d 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/branch/GitExeBranchCommandTckTest.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/branch/GitExeBranchCommandTckTest.java
@@ -22,12 +22,20 @@ package org.apache.maven.scm.provider.git.gitexe.command.branch;
 import org.apache.maven.scm.provider.git.GitScmTestUtils;
 import org.apache.maven.scm.provider.git.command.branch.GitBranchCommandTckTest;
 
+import static org.apache.maven.scm.provider.git.GitScmTestUtils.GIT_COMMAND_LINE;
+
 /**
  * @author <a href="mailto:struberg@yahoo.de">Mark Struberg</a>
  */
 public class GitExeBranchCommandTckTest
     extends GitBranchCommandTckTest
 {
+    @Override
+    public String getScmProviderCommand()
+    {
+        return GIT_COMMAND_LINE;
+    }
+
     /** {@inheritDoc} */
     public String getScmUrl()
         throws Exception
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/changelog/GitExeChangeLogCommandTckTest.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitExeChangeLogCommandTckTest.java
index 7ba7494ac..f966a3b02 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitExeChangeLogCommandTckTest.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/changelog/GitExeChangeLogCommandTckTest.java
@@ -1,8 +1,5 @@
 package org.apache.maven.scm.provider.git.gitexe.command.changelog;
 
-import org.apache.maven.scm.provider.git.GitScmTestUtils;
-import org.apache.maven.scm.provider.git.command.changelog.GitChangeLogCommandTckTest;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -22,12 +19,23 @@ import org.apache.maven.scm.provider.git.command.changelog.GitChangeLogCommandTc
  * under the License.
  */
 
+import org.apache.maven.scm.provider.git.GitScmTestUtils;
+import org.apache.maven.scm.provider.git.command.changelog.GitChangeLogCommandTckTest;
+
+import static org.apache.maven.scm.provider.git.GitScmTestUtils.GIT_COMMAND_LINE;
+
 /**
  * @author <a href="mailto:struberg@yahoo.de">Mark Struberg</a>
  */
 public class GitExeChangeLogCommandTckTest
     extends GitChangeLogCommandTckTest
 {
+    @Override
+    public String getScmProviderCommand()
+    {
+        return GIT_COMMAND_LINE;
+    }
+
     /** {@inheritDoc} */
     public String getScmUrl()
         throws Exception
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/GitExeCheckInCommandTckTest.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/GitExeCheckInCommandTckTest.java
index 62e314862..a97285b72 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/GitExeCheckInCommandTckTest.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/GitExeCheckInCommandTckTest.java
@@ -22,6 +22,8 @@ package org.apache.maven.scm.provider.git.gitexe.command.checkin;
 import org.apache.maven.scm.provider.git.GitScmTestUtils;
 import org.apache.maven.scm.provider.git.command.checkin.GitCheckInCommandTckTest;
 
+import static org.apache.maven.scm.provider.git.GitScmTestUtils.GIT_COMMAND_LINE;
+
 /**
  * @author <a href="mailto:brett@apache.org">Brett Porter</a>
  *
@@ -29,10 +31,16 @@ import org.apache.maven.scm.provider.git.command.checkin.GitCheckInCommandTckTes
 public class GitExeCheckInCommandTckTest
     extends GitCheckInCommandTckTest
 {
-        /** {@inheritDoc} */
-        public String getScmUrl()
-            throws Exception
-        {
-            return GitScmTestUtils.getScmUrl( getRepositoryRoot(), "git" );
-        }
+    @Override
+    public String getScmProviderCommand()
+    {
+        return GIT_COMMAND_LINE;
+    }
+
+    /** {@inheritDoc} */
+    public String getScmUrl()
+        throws Exception
+    {
+        return GitScmTestUtils.getScmUrl( getRepositoryRoot(), "git" );
+    }
 }
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/GitExeCheckOutCommandTckTest.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/GitExeCheckOutCommandTckTest.java
index 471f1458c..eb2e76040 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/GitExeCheckOutCommandTckTest.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/GitExeCheckOutCommandTckTest.java
@@ -21,6 +21,8 @@ package org.apache.maven.scm.provider.git.gitexe.command.checkout;
 
 import org.apache.maven.scm.provider.git.command.checkout.GitCheckOutCommandTckTest;
 
+import static org.apache.maven.scm.provider.git.GitScmTestUtils.GIT_COMMAND_LINE;
+
 /**
  * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
  *
@@ -28,5 +30,9 @@ import org.apache.maven.scm.provider.git.command.checkout.GitCheckOutCommandTckT
 public class GitExeCheckOutCommandTckTest
     extends GitCheckOutCommandTckTest
 {
-    // no op
+    @Override
+    public String getScmProviderCommand()
+    {
+        return GIT_COMMAND_LINE;
+    }
 }
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/diff/GitExeDiffCommandTckTest.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/diff/GitExeDiffCommandTckTest.java
index ed97014e7..37bfcda1f 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/diff/GitExeDiffCommandTckTest.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/diff/GitExeDiffCommandTckTest.java
@@ -22,12 +22,20 @@ package org.apache.maven.scm.provider.git.gitexe.command.diff;
 import org.apache.maven.scm.provider.git.GitScmTestUtils;
 import org.apache.maven.scm.provider.git.command.diff.GitDiffCommandTckTest;
 
+import static org.apache.maven.scm.provider.git.GitScmTestUtils.GIT_COMMAND_LINE;
+
 /**
  * @author <a href="mailto:struberg@yahoo.de">Mark Struberg</a>
  */
 public class GitExeDiffCommandTckTest
     extends GitDiffCommandTckTest
 {
+    @Override
+    public String getScmProviderCommand()
+    {
+        return GIT_COMMAND_LINE;
+    }
+
     /**
      * {@inheritDoc}
      */
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/remoteinfo/GitExeRemoteInfoCommandTckTest.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/remoteinfo/GitExeRemoteInfoCommandTckTest.java
index c6d84ea15..a96cd0bd9 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/remoteinfo/GitExeRemoteInfoCommandTckTest.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/remoteinfo/GitExeRemoteInfoCommandTckTest.java
@@ -23,6 +23,7 @@ import org.apache.maven.scm.command.remoteinfo.RemoteInfoScmResult;
 import org.apache.maven.scm.provider.git.GitScmTestUtils;
 import org.apache.maven.scm.provider.git.command.remoteinfo.AbstractGitRemoteInfoCommandTckTest;
 
+import static org.apache.maven.scm.provider.git.GitScmTestUtils.GIT_COMMAND_LINE;
 import static org.junit.Assert.assertEquals;
 
 /**
@@ -31,6 +32,11 @@ import static org.junit.Assert.assertEquals;
 public class GitExeRemoteInfoCommandTckTest
     extends AbstractGitRemoteInfoCommandTckTest
 {
+    @Override
+    public String getScmProviderCommand()
+    {
+        return GIT_COMMAND_LINE;
+    }
 
     @Override
     protected void checkResult( RemoteInfoScmResult result )
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/status/GitExeStatusCommandTckTest.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/status/GitExeStatusCommandTckTest.java
index 9302e30f0..715b3d165 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/status/GitExeStatusCommandTckTest.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/status/GitExeStatusCommandTckTest.java
@@ -22,6 +22,8 @@ package org.apache.maven.scm.provider.git.gitexe.command.status;
 import org.apache.maven.scm.provider.git.GitScmTestUtils;
 import org.apache.maven.scm.provider.git.command.status.GitStatusCommandTckTest;
 
+import static org.apache.maven.scm.provider.git.GitScmTestUtils.GIT_COMMAND_LINE;
+
 /**
  * @author <a href="mailto:brett@apache.org">Brett Porter</a>
  *
@@ -29,10 +31,16 @@ import org.apache.maven.scm.provider.git.command.status.GitStatusCommandTckTest;
 public class GitExeStatusCommandTckTest
     extends GitStatusCommandTckTest
 {
-        /** {@inheritDoc} */
-        public String getScmUrl()
-            throws Exception
-        {
-            return GitScmTestUtils.getScmUrl( getRepositoryRoot(), "git" );
-        }
+    @Override
+    public String getScmProviderCommand()
+    {
+        return GIT_COMMAND_LINE;
+    }
+
+    /** {@inheritDoc} */
+    public String getScmUrl()
+        throws Exception
+    {
+        return GitScmTestUtils.getScmUrl( getRepositoryRoot(), "git" );
+    }
 }
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/tag/GitExeTagCommandTckTest.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/tag/GitExeTagCommandTckTest.java
index 902b34f78..5d5c9f2fd 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/tag/GitExeTagCommandTckTest.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/tag/GitExeTagCommandTckTest.java
@@ -22,6 +22,8 @@ package org.apache.maven.scm.provider.git.gitexe.command.tag;
 import org.apache.maven.scm.provider.git.GitScmTestUtils;
 import org.apache.maven.scm.provider.git.command.tag.GitTagCommandTckTest;
 
+import static org.apache.maven.scm.provider.git.GitScmTestUtils.GIT_COMMAND_LINE;
+
 /**
  * This test tests the tag command.
  *
@@ -31,10 +33,16 @@ import org.apache.maven.scm.provider.git.command.tag.GitTagCommandTckTest;
 public class GitExeTagCommandTckTest
     extends GitTagCommandTckTest
 {
-        /** {@inheritDoc} */
-        public String getScmUrl()
-            throws Exception
-        {
-            return GitScmTestUtils.getScmUrl( getRepositoryRoot(), "git" );
-        }
+    @Override
+    public String getScmProviderCommand()
+    {
+        return GIT_COMMAND_LINE;
+    }
+
+    /** {@inheritDoc} */
+    public String getScmUrl()
+        throws Exception
+    {
+        return GitScmTestUtils.getScmUrl( getRepositoryRoot(), "git" );
+    }
 }
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/untag/GitExeUntagCommandTckTest.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/untag/GitExeUntagCommandTckTest.java
index 0a1984753..ceaed3fda 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/untag/GitExeUntagCommandTckTest.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/untag/GitExeUntagCommandTckTest.java
@@ -22,13 +22,21 @@ package org.apache.maven.scm.provider.git.gitexe.command.untag;
 import org.apache.maven.scm.provider.git.GitScmTestUtils;
 import org.apache.maven.scm.provider.git.command.untag.GitUntagCommandTckTest;
 
+import static org.apache.maven.scm.provider.git.GitScmTestUtils.GIT_COMMAND_LINE;
+
 public class GitExeUntagCommandTckTest
     extends GitUntagCommandTckTest
 {
-        /** {@inheritDoc} */
-        public String getScmUrl()
-            throws Exception
-        {
-            return GitScmTestUtils.getScmUrl( getRepositoryRoot(), "git" );
-        }
+    @Override
+    public String getScmProviderCommand()
+    {
+        return GIT_COMMAND_LINE;
+    }
+
+    /** {@inheritDoc} */
+    public String getScmUrl()
+        throws Exception
+    {
+        return GitScmTestUtils.getScmUrl( getRepositoryRoot(), "git" );
+    }
 }
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/update/GitExeUpdateCommandTckTest.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/update/GitExeUpdateCommandTckTest.java
index 7f1feb10f..3ea904acc 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/update/GitExeUpdateCommandTckTest.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/update/GitExeUpdateCommandTckTest.java
@@ -22,6 +22,8 @@ package org.apache.maven.scm.provider.git.gitexe.command.update;
 import org.apache.maven.scm.provider.git.GitScmTestUtils;
 import org.apache.maven.scm.provider.git.command.update.GitUpdateCommandTckTest;
 
+import static org.apache.maven.scm.provider.git.GitScmTestUtils.GIT_COMMAND_LINE;
+
 /**
  * @author <a href="mailto:struberg@yahoo.de">Mark Struberg</a>
  *
@@ -29,6 +31,12 @@ import org.apache.maven.scm.provider.git.command.update.GitUpdateCommandTckTest;
 public class GitExeUpdateCommandTckTest
     extends GitUpdateCommandTckTest
 {
+    @Override
+    public String getScmProviderCommand()
+    {
+        return GIT_COMMAND_LINE;
+    }
+
     /** {@inheritDoc} */
     public String getScmUrl()
         throws Exception
diff --git a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/GitScmTestUtils.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/GitScmTestUtils.java
index d7fc5d877..56c812888 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/GitScmTestUtils.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/GitScmTestUtils.java
@@ -35,6 +35,9 @@ import org.codehaus.plexus.util.cli.CommandLineException;
  */
 public final class GitScmTestUtils
 {
+    /** 'git' command line */
+    public static final String GIT_COMMAND_LINE = "git";
+
     private GitScmTestUtils()
     {
     }
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/blame/SvnExeBlameCommandTckTest.java b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/blame/SvnExeBlameCommandTckTest.java
index ef989b7c8..3c1cd09f5 100644
--- a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/blame/SvnExeBlameCommandTckTest.java
+++ b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/blame/SvnExeBlameCommandTckTest.java
@@ -22,12 +22,19 @@ package org.apache.maven.scm.provider.svn.svnexe.command.blame;
 import org.apache.maven.scm.provider.svn.command.blame.SvnBlameCommandTckTest;
 import org.junit.Test;
 
+import static org.apache.maven.scm.provider.svn.SvnScmTestUtils.SVN_COMMAND_LINE;
+
 /**
  * @author Evgeny Mandrikov
  */
 public class SvnExeBlameCommandTckTest
     extends SvnBlameCommandTckTest
 {
+    public String getScmProviderCommand()
+    {
+        return SVN_COMMAND_LINE;
+    }
+
     @Test
     public void testBlameCommand()
         throws Exception
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/branch/SvnExeBranchCommandTckTest.java b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/branch/SvnExeBranchCommandTckTest.java
index e307bf456..f716d812b 100644
--- a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/branch/SvnExeBranchCommandTckTest.java
+++ b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/branch/SvnExeBranchCommandTckTest.java
@@ -28,6 +28,8 @@ import org.junit.Test;
 
 import java.io.File;
 
+import static org.apache.maven.scm.provider.svn.SvnScmTestUtils.SVN_COMMAND_LINE;
+
 /**
  * This test tests the branch command.
  *
@@ -37,6 +39,11 @@ import java.io.File;
 public class SvnExeBranchCommandTckTest
     extends SvnBranchCommandTckTest
 {
+    public String getScmProviderCommand()
+    {
+        return SVN_COMMAND_LINE;
+    }
+
     //--no-auth-cache
     @Test
     public void testBranchUserNameSvnHttpsRemoteBranchingWithRev()
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/checkin/SvnExeCheckInCommandTckTest.java b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/checkin/SvnExeCheckInCommandTckTest.java
index 3e59c1caf..7ffd2f099 100644
--- a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/checkin/SvnExeCheckInCommandTckTest.java
+++ b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/checkin/SvnExeCheckInCommandTckTest.java
@@ -21,6 +21,8 @@ package org.apache.maven.scm.provider.svn.svnexe.command.checkin;
 
 import org.apache.maven.scm.provider.svn.command.checkin.SvnCheckInCommandTckTest;
 
+import static org.apache.maven.scm.provider.svn.SvnScmTestUtils.SVN_COMMAND_LINE;
+
 /**
  * @author <a href="mailto:brett@apache.org">Brett Porter</a>
  *
@@ -28,4 +30,9 @@ import org.apache.maven.scm.provider.svn.command.checkin.SvnCheckInCommandTckTes
 public class SvnExeCheckInCommandTckTest
     extends SvnCheckInCommandTckTest
 {
+    @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/checkout/SvnExeCheckOutCommandTckTest.java b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/checkout/SvnExeCheckOutCommandTckTest.java
index 93c270103..eef23e86e 100644
--- a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/checkout/SvnExeCheckOutCommandTckTest.java
+++ b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/checkout/SvnExeCheckOutCommandTckTest.java
@@ -21,6 +21,8 @@ package org.apache.maven.scm.provider.svn.svnexe.command.checkout;
 
 import org.apache.maven.scm.provider.svn.command.checkout.SvnCheckOutCommandTckTest;
 
+import static org.apache.maven.scm.provider.svn.SvnScmTestUtils.SVN_COMMAND_LINE;
+
 /**
  * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
  *
@@ -28,4 +30,9 @@ import org.apache.maven.scm.provider.svn.command.checkout.SvnCheckOutCommandTckT
 public class SvnExeCheckOutCommandTckTest
     extends SvnCheckOutCommandTckTest
 {
+    @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/diff/SvnExeDiffCommandTckTest.java b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/diff/SvnExeDiffCommandTckTest.java
index 32bb1edc2..242dcf85e 100644
--- a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/diff/SvnExeDiffCommandTckTest.java
+++ b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/diff/SvnExeDiffCommandTckTest.java
@@ -21,6 +21,8 @@ package org.apache.maven.scm.provider.svn.svnexe.command.diff;
 
 import org.apache.maven.scm.provider.svn.command.diff.SvnDiffCommandTckTest;
 
+import static org.apache.maven.scm.provider.svn.SvnScmTestUtils.SVN_COMMAND_LINE;
+
 /**
  * @author <a href="mailto:brett@apache.org">Brett Porter</a>
  *
@@ -28,4 +30,9 @@ import org.apache.maven.scm.provider.svn.command.diff.SvnDiffCommandTckTest;
 public class SvnExeDiffCommandTckTest
     extends SvnDiffCommandTckTest
 {
+    @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/mkdir/SvnExeMkdirCommandTckTest.java b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/mkdir/SvnExeMkdirCommandTckTest.java
index e5a16006d..48c04e497 100644
--- a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/mkdir/SvnExeMkdirCommandTckTest.java
+++ b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/mkdir/SvnExeMkdirCommandTckTest.java
@@ -21,6 +21,8 @@ package org.apache.maven.scm.provider.svn.svnexe.command.mkdir;
 
 import org.apache.maven.scm.provider.svn.command.mkdir.SvnMkdirCommandTckTest;
 
+import static org.apache.maven.scm.provider.svn.SvnScmTestUtils.SVN_COMMAND_LINE;
+
 /**
  * @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
  *
@@ -28,4 +30,9 @@ import org.apache.maven.scm.provider.svn.command.mkdir.SvnMkdirCommandTckTest;
 public class SvnExeMkdirCommandTckTest
     extends SvnMkdirCommandTckTest
 {
+    @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/SvnExeRemoteInfoCommandTckTest.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/SvnExeRemoteInfoCommandTckTest.java
index 117a0070f..c3d3581fd 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/SvnExeRemoteInfoCommandTckTest.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/SvnExeRemoteInfoCommandTckTest.java
@@ -24,6 +24,7 @@ import org.apache.maven.scm.provider.ScmProviderRepository;
 import org.apache.maven.scm.provider.svn.command.remoteinfo.AbstractSvnRemoteInfoCommandTckTest;
 import org.apache.maven.scm.provider.svn.repository.SvnScmProviderRepository;
 
+import static org.apache.maven.scm.provider.svn.SvnScmTestUtils.SVN_COMMAND_LINE;
 import static org.junit.Assert.assertTrue;
 
 /**
@@ -32,6 +33,11 @@ import static org.junit.Assert.assertTrue;
 public class SvnExeRemoteInfoCommandTckTest
     extends AbstractSvnRemoteInfoCommandTckTest
 {
+    @Override
+    public String getScmProviderCommand()
+    {
+        return SVN_COMMAND_LINE;
+    }
 
     @Override
     protected void checkResult( RemoteInfoScmResult result )
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/status/SvnExeStatusCommandTckTest.java b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/status/SvnExeStatusCommandTckTest.java
index cc94ae837..c19b55e7e 100644
--- a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/status/SvnExeStatusCommandTckTest.java
+++ b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/status/SvnExeStatusCommandTckTest.java
@@ -21,6 +21,8 @@ package org.apache.maven.scm.provider.svn.svnexe.command.status;
 
 import org.apache.maven.scm.provider.svn.command.status.SvnStatusCommandTckTest;
 
+import static org.apache.maven.scm.provider.svn.SvnScmTestUtils.SVN_COMMAND_LINE;
+
 /**
  * @author <a href="mailto:brett@apache.org">Brett Porter</a>
  *
@@ -28,4 +30,9 @@ import org.apache.maven.scm.provider.svn.command.status.SvnStatusCommandTckTest;
 public class SvnExeStatusCommandTckTest
     extends SvnStatusCommandTckTest
 {
+    @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/tag/SvnExeTagCommandTckTest.java b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/tag/SvnExeTagCommandTckTest.java
index edc74925f..58a4eb33d 100644
--- a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/tag/SvnExeTagCommandTckTest.java
+++ b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/tag/SvnExeTagCommandTckTest.java
@@ -28,6 +28,8 @@ import org.apache.maven.scm.repository.ScmRepository;
 import org.codehaus.plexus.util.cli.Commandline;
 import org.junit.Test;
 
+import static org.apache.maven.scm.provider.svn.SvnScmTestUtils.SVN_COMMAND_LINE;
+
 /**
  * This test tests the tag command.
  *
@@ -37,6 +39,12 @@ import org.junit.Test;
 public class SvnExeTagCommandTckTest
     extends SvnTagCommandTckTest
 {
+    @Override
+    public String getScmProviderCommand()
+    {
+        return SVN_COMMAND_LINE;
+    }
+
     @Test
     public void testTagUserNameSvnSsh()
         throws Exception
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/untag/SvnExeUntagCommandTckTest.java b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/untag/SvnExeUntagCommandTckTest.java
index cae35dfbe..92da7c6e6 100644
--- a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/untag/SvnExeUntagCommandTckTest.java
+++ b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/untag/SvnExeUntagCommandTckTest.java
@@ -28,6 +28,8 @@ import org.apache.maven.scm.repository.ScmRepository;
 import org.codehaus.plexus.util.cli.Commandline;
 import org.junit.Test;
 
+import static org.apache.maven.scm.provider.svn.SvnScmTestUtils.SVN_COMMAND_LINE;
+
 /**
  * This test tests the untag command for Subversion.
  *
@@ -35,6 +37,12 @@ import org.junit.Test;
 public class SvnExeUntagCommandTckTest
     extends SvnUntagCommandTckTest
 {
+    @Override
+    public String getScmProviderCommand()
+    {
+        return SVN_COMMAND_LINE;
+    }
+
     /**
      * test against ssh repository with user
      *
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/update/SvnExeUpdateCommandTckTest.java b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/update/SvnExeUpdateCommandTckTest.java
index 41af38c49..f0997a524 100644
--- a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/update/SvnExeUpdateCommandTckTest.java
+++ b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/update/SvnExeUpdateCommandTckTest.java
@@ -21,6 +21,8 @@ package org.apache.maven.scm.provider.svn.svnexe.command.update;
 
 import org.apache.maven.scm.provider.svn.command.update.SvnUpdateCommandTckTest;
 
+import static org.apache.maven.scm.provider.svn.SvnScmTestUtils.SVN_COMMAND_LINE;
+
 /**
  * @author <a href="mailto:trygvis@inamo.no">Trygve Laugst&oslash;l</a>
  *
@@ -28,5 +30,9 @@ import org.apache.maven.scm.provider.svn.command.update.SvnUpdateCommandTckTest;
 public class SvnExeUpdateCommandTckTest
     extends SvnUpdateCommandTckTest
 {
-    // no op
+    @Override
+    public String getScmProviderCommand()
+    {
+        return SVN_COMMAND_LINE;
+    }
 }
diff --git a/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTckTestCase.java b/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTckTestCase.java
index 71388bc49..e6e76b368 100644
--- a/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTckTestCase.java
+++ b/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTckTestCase.java
@@ -39,6 +39,8 @@ import org.junit.Before;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
+import static org.junit.Assume.assumeTrue;
+
 /**
  * Base class for all TcK tests.
  * <p>
@@ -60,6 +62,16 @@ public abstract class ScmTckTestCase
 
     private List<String> scmFileNames;
 
+    /**
+     * Some tests can only run if the appropriate application has been installed.
+     * If the provided name is not a runnable application all tests in the class are skipped.
+     * @return The commandline command for the specific scm provider. Or null if none is needed.
+     */
+    public String getScmProviderCommand()
+    {
+        return null;
+    }
+
     /**
      * @return A provider specific and valid url for the repository
      * @throws Exception if any
@@ -100,6 +112,16 @@ public abstract class ScmTckTestCase
     public abstract void initRepo()
         throws Exception;
 
+    public void checkScmPresence()
+    {
+        String scmProviderCommand = getScmProviderCommand();
+        if ( scmProviderCommand != null )
+        {
+            assumeTrue( "Skipping tests because the required command '" + scmProviderCommand + "' is not available.",
+                ScmTestCase.isSystemCmd( scmProviderCommand ) );
+        }
+    }
+
     /**
      * {@inheritDoc}
      */
@@ -108,6 +130,7 @@ public abstract class ScmTckTestCase
     public void setUp()
         throws Exception
     {
+        checkScmPresence();
         super.setUp();
 
         scmRepository = null;
@@ -141,7 +164,7 @@ public abstract class ScmTckTestCase
     }
 
     /**
-     * Provided to allow removeRepo() to be called. 
+     * Provided to allow removeRepo() to be called.
      */
     @After
     @Override
diff --git a/pom.xml b/pom.xml
index 4e4a368da..c871f61d0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -373,6 +373,9 @@
     <contributor>
       <name>Guy Chauliac</name>
     </contributor>
+    <contributor>
+      <name>Niels Basjes</name>
+    </contributor>
   </contributors>
 
   <profiles>