Sha256: a27ada0c5943331da573a34e78fb2047bc2f26b71f9c7bd62e76a9945d47f8d9
Contents?: true
Size: 1.18 KB
Versions: 13
Compression:
Stored size: 1.18 KB
Contents
namespace :spec do namespace :db do databases = [:postgresql, :mysql, :sqlite3] desc "Run specs against all databases" task :all do failed = false databases.each do |database| test_against database end end databases.each do |database| desc "Run specs against '#{database}' database" task database do return test_against database end end def test_against(kind) sample = Rails.root + "config/database~#{kind}.sample.yml" custom = Rails.root + "config/database~custom.yml" backup = Rails.root + "config/database~custom.yml.backup" if custom.exist? mv custom, backup end cp sample, custom succeeded = nil begin Dir.chdir(Rails.root) do puts puts "## Database: #{kind}" succeeded = system "unset BUNDLE_GEMFILE BUNDLE_BIN_PATH RUBYOPT; bundle --quiet && rake db:create:all db:migrate db:test:prepare spec" end ensure rm custom if backup.exist? mv backup, custom end end unless succeeded raise "Tests failed against database '#{kind}'" end end end end
Version data entries
13 entries across 13 versions & 2 rubygems