diff options
Diffstat (limited to 'lib/tasks/testing.rake')
-rw-r--r-- | lib/tasks/testing.rake | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/lib/tasks/testing.rake b/lib/tasks/testing.rake index 42f756f68..da832b3e7 100644 --- a/lib/tasks/testing.rake +++ b/lib/tasks/testing.rake @@ -1,5 +1,35 @@ ### From http://svn.geekdaily.org/public/rails/plugins/generally_useful/tasks/coverage_via_rcov.rake +namespace :test do + namespace :scm do + namespace :setup do + desc "Creates directory for test repositories" + task :create_dir do + FileUtils.mkdir_p Rails.root + '/tmp/test' + end + + supported_scms = [:subversion, :cvs, :bazaar, :mercurial, :git, :darcs, :filesystem] + + desc "Creates a test subversion repository" + task :subversion => :create_dir do + repo_path = "tmp/test/subversion_repository" + system "svnadmin create #{repo_path}" + system "gunzip < test/fixtures/repositories/subversion_repository.dump.gz | svnadmin load #{repo_path}" + end + + (supported_scms - [:subversion]).each do |scm| + desc "Creates a test #{scm} repository" + task scm => :create_dir do + system "gunzip < test/fixtures/repositories/#{scm}_repository.tar.gz | tar -xv -C tmp/test" + end + end + + desc "Creates all test repositories" + task :all => supported_scms + end + end +end + ### Inspired by http://blog.labratz.net/articles/2006/12/2/a-rake-task-for-rcov begin require 'rcov/rcovtask' |