diff --git a/test/functional/repositories_subversion_controller_test.rb b/test/functional/repositories_subversion_controller_test.rb
index f07c7ea1a17ffb6a90326c6564d0cfa176a8b800..d28646d44f46607d1e423f89206f85ed2ea991f1 100644
--- a/test/functional/repositories_subversion_controller_test.rb
+++ b/test/functional/repositories_subversion_controller_test.rb
@@ -26,9 +26,6 @@ class RepositoriesSubversionControllerTest < ActionController::TestCase
            :repositories, :issues, :issue_statuses, :changesets, :changes,
            :issue_categories, :enumerations, :custom_fields, :custom_values, :trackers
 
-  # No '..' in the repository path for svn
-  REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/subversion_repository'
-
   def setup
     @controller = RepositoriesController.new
     @request    = ActionController::TestRequest.new
@@ -37,7 +34,7 @@ class RepositoriesSubversionControllerTest < ActionController::TestCase
     User.current = nil
   end
 
-  if File.directory?(REPOSITORY_PATH)
+  if repository_configured?('subversion')
     def test_show
       get :show, :id => 1
       assert_response :success
diff --git a/test/test_helper.rb b/test/test_helper.rb
index 48e2c999a63b14a7b02f8d517379e680d4034896..cb043fa89659bedaad9f81755240c6033ebc9ad7 100644
--- a/test/test_helper.rb
+++ b/test/test_helper.rb
@@ -83,6 +83,16 @@ class ActiveSupport::TestCase
     # LDAP is not listening
     return nil
   end
+  
+  # Returns the path to the test +vendor+ repository
+  def self.repository_path(vendor)
+    File.join(RAILS_ROOT.gsub(%r{config\/\.\.}, ''), "/tmp/test/#{vendor.downcase}_repository")
+  end
+  
+  # Returns true if the +vendor+ test repository is configured
+  def self.repository_configured?(vendor)
+    File.directory?(repository_path(vendor))
+  end
 
   # Shoulda macros
   def self.should_render_404
diff --git a/test/unit/lib/redmine/scm/adapters/subversion_adapter_test.rb b/test/unit/lib/redmine/scm/adapters/subversion_adapter_test.rb
index e44d12f2d785635fe79e1892d294edf6097b3c09..4fc56cbc3b82fb48cb44e8af1dbafe09310c653a 100644
--- a/test/unit/lib/redmine/scm/adapters/subversion_adapter_test.rb
+++ b/test/unit/lib/redmine/scm/adapters/subversion_adapter_test.rb
@@ -15,19 +15,17 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 
-require 'mkmf'
-
 require File.dirname(__FILE__) + '/../../../../../test_helper'
 
 class SubversionAdapterTest < ActiveSupport::TestCase
   
-  if find_executable0('svn')
+  if repository_configured?('subversion')
     def test_client_version
       v = Redmine::Scm::Adapters::SubversionAdapter.client_version
       assert v.is_a?(Array)
     end
   else
-    puts "Subversion binary NOT FOUND. Skipping unit tests !!!"
+    puts "Subversion test repository NOT FOUND. Skipping unit tests !!!"
     def test_fake; assert true end
   end
 end
diff --git a/test/unit/repository_subversion_test.rb b/test/unit/repository_subversion_test.rb
index fb5580c422c08d12cd59eb78684297d283851c77..a2394facde0d5abf20ba68c03196a98423d3395f 100644
--- a/test/unit/repository_subversion_test.rb
+++ b/test/unit/repository_subversion_test.rb
@@ -20,15 +20,12 @@ require File.dirname(__FILE__) + '/../test_helper'
 class RepositorySubversionTest < ActiveSupport::TestCase
   fixtures :projects
   
-  # No '..' in the repository path for svn
-  REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/subversion_repository'
-  
   def setup
     @project = Project.find(1)
-    assert @repository = Repository::Subversion.create(:project => @project, :url => "file:///#{REPOSITORY_PATH}")
+    assert @repository = Repository::Subversion.create(:project => @project, :url => "file:///#{self.class.repository_path('subversion')}")
   end
   
-  if File.directory?(REPOSITORY_PATH)  
+  if repository_configured?('subversion')
     def test_fetch_changesets_from_scratch
       @repository.fetch_changesets
       @repository.reload