Updated Rakefile and test_helper to work with more adapters than just sqlite3.
This commit is contained in:
parent
61c1af6520
commit
459aeb6fee
21
Rakefile
Normal file
21
Rakefile
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
require 'rake/testtask'
|
||||||
|
|
||||||
|
task :default => [:test]
|
||||||
|
|
||||||
|
ADAPTERS = %w(mysql postgresql sqlite sqlite3 oracle)
|
||||||
|
|
||||||
|
desc "Runs generic database tests."
|
||||||
|
Rake::TestTask.new("test") { |t|
|
||||||
|
t.test_files = FileList["test/*_test.rb", "test/#{ENV['ARE_DB']}/**/*_test.rb"]
|
||||||
|
}
|
||||||
|
|
||||||
|
ADAPTERS.each do |adapter|
|
||||||
|
namespace :test do
|
||||||
|
desc "Runs unit tests for #{adapter} specific functionality"
|
||||||
|
task adapter do
|
||||||
|
ENV["ARE_DB"] = adapter
|
||||||
|
exec "rake test"
|
||||||
|
# exec replaces the current process, never gets here
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -1,6 +1,5 @@
|
||||||
ENV["RAILS_ENV"] = "test"
|
ENV["RAILS_ENV"] = "test"
|
||||||
require 'pathname'
|
require 'pathname'
|
||||||
|
|
||||||
this_dir = Pathname.new File.dirname(__FILE__)
|
this_dir = Pathname.new File.dirname(__FILE__)
|
||||||
$LOAD_PATH << this_dir.join("../lib")
|
$LOAD_PATH << this_dir.join("../lib")
|
||||||
|
|
||||||
|
@ -57,22 +56,24 @@ end
|
||||||
# load test helpers
|
# load test helpers
|
||||||
require "rails"
|
require "rails"
|
||||||
class MyApplication < Rails::Application ; end
|
class MyApplication < Rails::Application ; end
|
||||||
adapter = "sqlite3"
|
adapter = ENV["ARE_DB"] || "sqlite3"
|
||||||
|
|
||||||
ActiveRecord::Base.logger = Logger.new("log/test.log")
|
ActiveRecord::Base.logger = Logger.new("log/test.log")
|
||||||
|
ActiveRecord::Base.logger.level = Logger::DEBUG
|
||||||
ActiveRecord::Base.configurations["test"] = YAML.load(this_dir.join("database.yml").open)[adapter]
|
ActiveRecord::Base.configurations["test"] = YAML.load(this_dir.join("database.yml").open)[adapter]
|
||||||
ActiveRecord::Base.establish_connection "test"
|
ActiveRecord::Base.establish_connection "test"
|
||||||
|
|
||||||
|
ActiveSupport::Notifications.subscribe(/active_record.sql/) do |event, _, _, _, hsh|
|
||||||
|
ActiveRecord::Base.logger.info hsh[:sql]
|
||||||
|
end
|
||||||
|
|
||||||
require "factory_girl"
|
require "factory_girl"
|
||||||
Dir[File.dirname(__FILE__) + "/support/**/*.rb"].each{ |file| require file }
|
Dir[File.dirname(__FILE__) + "/support/**/*.rb"].each{ |file| require file }
|
||||||
|
|
||||||
# Load base/generic schema
|
# Load base/generic schema
|
||||||
require this_dir.join("schema/version")
|
require this_dir.join("schema/version")
|
||||||
require this_dir.join("schema/generic_schema")
|
require this_dir.join("schema/generic_schema")
|
||||||
|
adapter_schema = this_dir.join("schema/#{adapter}_schema.rb")
|
||||||
# Load adapter specific schema if one exists
|
|
||||||
adapter_schema = this_dir.join("schema/#{adapter}_schema")
|
|
||||||
require adapter_schema if File.exists?(adapter_schema)
|
require adapter_schema if File.exists?(adapter_schema)
|
||||||
|
|
||||||
Dir[File.dirname(__FILE__) + "/models/*.rb"].each{ |file| require file }
|
Dir[File.dirname(__FILE__) + "/models/*.rb"].each{ |file| require file }
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue