require 'rspec/core/rake_task' namespace :test do namespace :spec do desc "Run spec tests" RSpec::Core::RakeTask.new(:run) do |t| t.rspec_opts = ['--color'] t.pattern = 'spec/' end desc "Run spec tests with coverage" RSpec::Core::RakeTask.new(:coverage) do |t| ENV['BEAKER_TEMPLATE_COVERAGE'] = 'y' t.rspec_opts = ['--color'] t.pattern = 'spec/' end end namespace :acceptance do desc <<-EOS A quick acceptance test, named because it has no pre-suites to run EOS task :quick do sh("beaker", "--hosts", ENV['CONFIG'] || "acceptance/config/nodes/vagrant-ubuntu-1404.yml", "--tests", "acceptance/tests", "--log-level", "debug", "--keyfile", ENV['KEY'] || "#{ENV['HOME']}/.ssh/id_rsa") end end end # namespace-named default tasks. # these are the default tasks invoked when only the namespace is referenced. # they're needed because `task :default` in those blocks doesn't work as expected. task 'test:spec' => 'test:spec:run' task 'test:acceptance' => 'test:acceptance:quick' # global defaults task :test => 'test:spec' task :default => :test