Sha256: 6be33880920eb65b14c1e1480b0e29aa9b334aa1ed3b765b42af18c5bf2f9f22

Contents?: true

Size: 1.97 KB

Versions: 2

Compression:

Stored size: 1.97 KB

Contents

require 'rubygems'
require 'rake'
require 'rake/testtask'

DIR = File.dirname( __FILE__ )

task :default => [ "test:mysql" ]

task :boot do 
  require File.expand_path( File.join( DIR, 'lib', 'ar-extensions' ) )
  require File.expand_path( File.join( DIR, 'tests', 'connections', "native_#{ENV['ARE_DB']}", 'connection' ) )
  require File.expand_path( File.join( DIR, 'db/migrate/version' ) )
end

ADAPTERS = %w( mysql postgresql sqlite sqlite3 )

namespace :db do

  namespace :test do
    ADAPTERS.each do |adapter|
      desc "builds test database for #{adapter}"
      task "prepare_#{adapter}" do |t|
        file2run = File.join( DIR, 'tests/prepare.rb' )
        system( "ruby #{file2run} #{adapter}" )
      end
    end
  end

end

namespace :test do
  
  ADAPTERS.each do |adapter|
    desc "test base extensions for #{adapter}"
    task adapter do |t|
      ENV['ARE_DB'] = adapter
      Rake::Task[ 'boot' ].invoke
      
      task = Rake::Task[ "db:test:prepare_#{adapter}" ]
			begin
        task = false  if SchemaInfo::VERSION == SchemaInfo.find( :first ).version
		  rescue Exception => ex        
      end
      task.invoke if task
        
      system "ruby #{File.join( DIR, 'tests/run.rb ' )} #{adapter}" 
    end
  end
  
  namespace :activerecord do

    ADAPTERS.each do |adapter|
      desc "runs ActiveRecord unit tests for #{adapter} with ActiveRecord::Extensions"
      task adapter.to_sym do |t|
        activerecord_dir = ARGV[1]
        if activerecord_dir.nil? or ! File.directory?( activerecord_dir )
          STDERR.puts "ERROR: Pass in the path to ActiveRecord. Eg: /home/zdennis/rails_trunk/activerecord"
          exit
        end
        
        old_dir, old_env = Dir.pwd, ENV['RUBYOPT']
        Dir.chdir( activerecord_dir )
        ENV['RUBYOPT'] = "-r#{File.join(old_dir,'init.rb')}"

        load "Rakefile"
        Rake::Task[ "test_#{adapter}" ].invoke
        Dir.chdir( old_dir )
        ENV['RUBYOPT'] = old_env
      end      
  
    end  
          
  end    

 end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ar-extensions-0.5.2 Rakefile
ar-extensions-0.6.0 Rakefile