11require File . expand_path ( '../../test/shared_helper' , __FILE__ )
22
3+ test_tasks = [ 'test_mysql' , 'test_sqlite3' , 'test_postgresql_with_hint' ]
34if defined? ( JRUBY_VERSION )
4- databases = [ :test_mysql , :test_sqlite3 , :test_derby , :test_hsqldb , :test_h2 ]
5- databases << :test_postgres if PostgresHelper . have_postgres? ( false )
6- databases << :test_jdbc ; databases << :test_jndi
7- task :test do
8- unless PostgresHelper . have_postgres?
9- warn "... won't run test_postgres tests"
10- end
11- databases . each { |task | Rake ::Task [ task . to_s ] . invoke }
5+ test_tasks . push :test_derby , :test_hsqldb , :test_h2
6+ test_tasks . push :test_jndi , :test_jdbc
7+ end
8+
9+ desc "Run \" most\" available test_xxx tasks"
10+ task :test => test_tasks
11+
12+ task 'test_postgresql_with_hint' do
13+ if PostgresHelper . have_postgres? ( false )
14+ Rake ::Task [ 'test_postgresql' ] . invoke
15+ else
16+ puts "NOTE: won't run test_postgresql"
1217 end
13- else
14- task :test => [ :test_mysql ]
1518end
1619
1720def set_test_task_compat_version ( task )
@@ -26,14 +29,18 @@ def set_task_description(task, desc)
2629 task = task . name if task . is_a? ( Rake ::TestTask )
2730 task = Rake ::Task [ task ]
2831 end
29- # reset the desc set-up by TestTask :
30- task . instance_variable_set ( :@full_comment , nil )
32+ # reset the description set-up by TestTask :
33+ if task . instance_variable_defined? :@full_comment
34+ task . instance_variable_set ( :@full_comment , nil )
35+ else
36+ task . instance_variable_get ( :@comments ) . clear
37+ end
3138 task . add_description ( desc )
3239end
3340
3441task 'test_appraisal_hint' do
3542 next if File . exists? ( '.disable-appraisal-hint' )
36- unless ( ENV [ 'BUNDLE_GEMFILE' ] rescue '' ) =~ /gemfiles\/ .*?\. gemfile/
43+ unless ( ENV [ 'BUNDLE_GEMFILE' ] || '' ) =~ /gemfiles\/ .*?\. gemfile/
3744 appraisals = [ ] ; Appraisal ::File . each { |file | appraisals << file . name }
3845 puts "HINT: specify AR version with `rake appraisal:{version} test_{adapter}'" +
3946 " where version=(#{ appraisals . join ( '|' ) } ) (`touch .disable-appraisal-hint' to disable)"
@@ -80,8 +87,8 @@ test_task_for :MSSQL, :driver => :jtds, :database_name => 'MS-SQL (SQLServer)'
8087test_task_for :MySQL , :prereqs => 'db:mysql'
8188test_task_for :PostgreSQL , :prereqs => 'db:postgresql' , :driver => 'postgres'
8289task :test_postgres => :test_postgresql # alias
83- task :test_pgsql => :test_postgresql # alias
8490test_task_for :SQLite3
91+ task :test_sqlite => :test_sqlite3 # alias
8592test_task_for :Firebird
8693
8794# ensure driver for these DBs is on your class-path
0 commit comments