require 'rubygems' require 'bundler' Bundler.setup
require 'rake' require 'rake/testtask' require 'rcov/rcovtask'
require 'appraisal'
desc 'Default: run all tests.' task :default => :test
desc “Test state_machine.” Rake::TestTask.new(:test) do |t|
integration = %w(active_model active_record data_mapper mongoid mongo_mapper sequel).detect do |name| Bundler.default_gemfile.to_s.include?(name) end t.libs << 'lib' t.test_files = integration ? Dir["test/unit/integrations/#{integration}_test.rb"] : Dir['test/{functional,unit} _test.rb'] + ['test/unit/integrations/base_test.rb'] t.verbose = true
end
namespace :test do
desc "Test state_machine with Rcov." Rcov::RcovTask.new(:rcov) do |t| t.libs << 'lib' t.test_files = Dir['test/ *_test.rb'] t.rcov_opts << '--exclude="^(?!lib/)"' t.verbose = true end
end
namespace :appraisal do
desc "Run the given task for a particular integration's appraisals" task :integration do integration = ENV['INTEGRATION'] Appraisal::File.each do |appraisal| if appraisal.name.include?(integration) appraisal.install Appraisal::Command.from_args(appraisal.gemfile_path).run end end exit end
end
load File.dirname(__FILE__) + '/lib/tasks/state_machine.rake'