Skip to content

Commit 5c25282

Browse files
committed
support for running test againg MySQL/PostgreSQL using **adapter: jdbc**
1 parent 24e84f9 commit 5c25282

File tree

2 files changed

+18
-3
lines changed

2 files changed

+18
-3
lines changed

rakelib/02-test.rake

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,15 @@ test_task_for 'JNDI', :desc => 'Run tests against a JNDI connection (uses Derby)
105105
test_task.libs << 'jdbc-derby/lib'
106106
end
107107

108+
test_task_for :MySQL, :name => 'test_jdbc_mysql',
109+
:prereqs => 'db:mysql', :database_name => 'MySQL (using adapter: jdbc)' do |test_task|
110+
test_task.ruby_opts << '-rdb/jdbc_mysql' # replaces require 'db/mysql'
111+
end
112+
test_task_for :PostgreSQL, :name => 'test_jdbc_postgresql', :driver => 'postgres',
113+
:prereqs => 'db:postgresql', :database_name => 'PostgreSQL (using adapter: jdbc)' do |test_task|
114+
test_task.ruby_opts << '-rdb/jdbc_postgres' # replaces require 'db/postgres'
115+
end
116+
108117
# TODO Sybase testing is currently broken, please fix it if you're on Sybase :
109118
#test_task_for :Sybase, :desc => "Run tests against Sybase (using jTDS driver)"
110119
#task :test_sybase_jtds => :test_sybase # alias

test/db/jdbc_mysql.rb

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,17 @@
44
require 'jdbc/mysql' # driver not loaded for plain JDBC
55
Jdbc::MySQL.load_driver
66

7+
url = MYSQL_CONFIG[:url] || begin
8+
url_part = MYSQL_CONFIG[:host].dup
9+
url_part << ":#{MYSQL_CONFIG[:port]}" if MYSQL_CONFIG[:port]
10+
"jdbc:mysql://#{url_part}/#{MYSQL_CONFIG[:database]}"
11+
end
12+
713
ActiveRecord::Base.establish_connection({
8-
:adapter => 'jdbc',
9-
:driver => 'com.mysql.jdbc.Driver',
10-
:url => "jdbc:mysql://#{MYSQL_CONFIG[:host]}/#{MYSQL_CONFIG[:database]}",
14+
:adapter => 'jdbc', :url => url, :driver => 'com.mysql.jdbc.Driver',
1115
:username => MYSQL_CONFIG[:username],
1216
:password => MYSQL_CONFIG[:password],
1317
:prepared_statements => ENV['PREPARED_STATEMENTS'] || ENV['PS']
1418
})
19+
20+
$LOADED_FEATURES << 'db/mysql.rb' # we're running MySQL tests that require this

0 commit comments

Comments
 (0)