Rakefile in message-driver-0.1.0 vs Rakefile in message-driver-0.2.0.rc1
- old
+ new
@@ -1,23 +1,56 @@
+require 'rubygems'
+require 'bundler/setup'
+
require 'bundler/gem_tasks'
require 'rspec/core/rake_task'
require 'cucumber/rake/task'
-require File.join(File.dirname(__FILE__), 'test_lib', 'broker_config')
+#require File.join(File.dirname(__FILE__), 'test_lib', 'broker_config')
-RSpec::Core::RakeTask.new(:spec) do |t|
- t.pattern = "./spec/units{,/*/**}/*_spec.rb"
+namespace :spec do
+ desc "Run unit specs"
+ RSpec::Core::RakeTask.new(:units) do |t|
+ t.pattern = "./spec/units{,/*/**}/*_spec.rb"
+ end
+
+ desc "Run the integration specs"
+ RSpec::Core::RakeTask.new(:integrations) do |t|
+ t.rspec_opts = "--tag all_adapters"
+ t.pattern = "./spec/integration/#{BrokerConfig.current_adapter}{,/*/**}/*_spec.rb"
+ end
+
+ cucumber_opts = "--format progress --tag @all_adapters,@#{BrokerConfig.current_adapter} --tag ~@wip"
+ cucumber_opts += " --tag ~@no_ci" if ENV['CI']=='true' && ENV['ADAPTER'] && ENV['ADAPTER'].start_with?('bunny')
+ Cucumber::Rake::Task.new(:features) do |t|
+ t.cucumber_opts = cucumber_opts
+ end
+
+ desc "run all the specs"
+ task :all => [:units, :integrations, :features]
+
+ desc "run all the specs for each adapter"
+ task :all_adapters do
+ current_adapter = BrokerConfig.current_adapter
+ BrokerConfig.all_adapters.each do |adapter|
+ set_adapter_under_test(adapter)
+ system("rake spec:all")
+ end
+ set_adapter_under_test(current_adapter)
+ end
end
-RSpec::Core::RakeTask.new(:integrations) do |t|
- t.rspec_opts = "--tag all_adapters"
- t.pattern = "./spec/integration{,/*/**}/*_spec.rb"
+def set_adapter_under_test(adapter)
+ system "echo #{adapter} > #{File.join(File.dirname(__FILE__), '.adapter_under_test')}"
end
-cucumber_opts = "--format progress --tag @all_adapters,@#{BrokerConfig.current_adapter} --tag ~@wip"
-cucumber_opts += " --tag ~@no_travis" if ENV['TRAVIS']=='true' && ENV['ADAPTER']=='bunny'
-Cucumber::Rake::Task.new do |t|
- t.cucumber_opts = cucumber_opts
+namespace :undertest do
+ BrokerConfig.all_adapters.each do |adapter|
+ desc "set the adapter under test to #{adapter}"
+ task adapter do
+ set_adapter_under_test(adapter)
+ end
+ end
end
-task :default => [:spec, :integrations, :cucumber]
+task :default => ["spec:all"]