diff --git a/.travis.yml b/.travis.yml index 897164183c3ee613870b7eed4b76ec536640ae7e..943ff7d07bc5e2bc465d89528e4ec1e3e031effb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,9 @@ language: ruby +env: + - DB= + - DB=sqlite + - DB=postgres + - DB=mysql rvm: - 1.9.3 - 2.0.0 diff --git a/Gemfile b/Gemfile index ab421abe832a2373962204611267b89b515b3606..eb405d930106eb8d72f93b43e9f1d833d8c4f8e6 100644 --- a/Gemfile +++ b/Gemfile @@ -23,13 +23,15 @@ group :development, :test do end group :test do + gem 'sqlite3', :platform => [:ruby, :mswin, :mingw] + platforms :ruby do gem 'pg' - gem 'sqlite3' gem 'mysql2' end platforms :jruby do + gem 'jdbc-sqlite3' gem 'activerecord-jdbcpostgresql-adapter' end end diff --git a/Rakefile b/Rakefile index 2ee05cce85e7c4cf2d7adabe21fa1778eda1f79f..52ae639e68a2aa8a76f73b62dcdcbf91370030db 100644 --- a/Rakefile +++ b/Rakefile @@ -9,23 +9,6 @@ def config end namespace :db do - require 'active_record' - desc 'Migrate the database through scripts in test/db/migrate.' - task :migrate => :environment do - version = ENV['VERSION'] ? ENV['VERSION'].to_i : nil - ActiveRecord::Migrator.migrate('test/db/migrate', version) - end - - task :environment do - require 'logger' - ActiveRecord::Base.logger = Logger.new(STDOUT) - ActiveRecord::Base.configurations = config - # Establish a database connection - db_name = ENV['DB'] || 'sqlite' - ActiveRecord::Base.establish_connection(db_name) - ActiveRecord::Base.default_timezone = :utc - end - task :create do if ACCEPTED_DB_VALUES.include? ENV['DB'] Rake::Task["db:#{ENV['DB']}:create"].invoke @@ -38,7 +21,7 @@ namespace :db do end end - task :reset => [:drop, :create, :migrate] + task :reset => [:drop, :create] namespace :mysql do desc 'Create the MySQL test databases' diff --git a/test/database.yml b/test/database.yml index 8c1d3bb3ddfc2698f2747e6ae515ff6735785a7e..63232ed58db252c2928a61c3e35f43e94b57d999 100644 --- a/test/database.yml +++ b/test/database.yml @@ -1,7 +1,7 @@ # test/database.yml sqlite: adapter: sqlite3 - database: "test/geocoder_test.sqlite" + database: ":memory:" timeout: 500 mysql: adapter: mysql2 diff --git a/test/test_helper.rb b/test/test_helper.rb index 441bab145bceb8570b9cddc2281982f6701f252d..6a048dad9b0ca5bfb12f0388747fe596b25eadd9 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -4,17 +4,20 @@ require 'test/unit' $LOAD_PATH.unshift(File.dirname(__FILE__)) $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib')) -if ENV['DB'] - require 'rails' +require 'yaml' +configs = YAML.load_file('test/database.yml') + +if configs.keys.include? ENV['DB'] require 'active_record' # Establish a database connection - configs = YAML.load_file('test/database.yml') ActiveRecord::Base.configurations = configs db_name = ENV['DB'] ActiveRecord::Base.establish_connection(db_name) ActiveRecord::Base.default_timezone = :utc + + ActiveRecord::Migrator.migrate('test/db/migrate', nil) else class MysqlConnection def adapter_name @@ -69,10 +72,10 @@ else end end end +end - # simulate Rails module so Railtie gets loaded - module Rails - end +# simulate Rails module so Railtie gets loaded +module Rails end # Require Geocoder after ActiveRecord simulator.