Created
December 1, 2010 02:29
-
-
Save williamn/722828 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
unless ARGV.any? {|a| a =~ /^gems/} # Don't load anything when running the gems:* tasks | |
vendored_cucumber_bin = Dir["#{Rails.root}/vendor/{gems,plugins}/cucumber*/bin/cucumber"].first | |
$LOAD_PATH.unshift(File.dirname(vendored_cucumber_bin) + '/../lib') unless vendored_cucumber_bin.nil? | |
begin | |
require 'cucumber/rake/task' | |
namespace :hudson do | |
def report_path | |
"hudson/report/features" | |
end | |
Cucumber::Rake::Task.new({:cucumber => ['coverage_setup', 'report_setup', 'db:test:prepare']}, 'Run features that should pass') do |t| | |
t.binary = vendored_cucumber_bin # If nil, the gem's binary is used. | |
t.fork = true # You may get faster startup if you set this to false | |
t.profile = 'default' | |
t.cucumber_opts = "--format junit --out #{report_path}" | |
t.rcov = true | |
t.rcov_opts = %w{--rails --exclude \/usr/local\/,features\/} | |
end | |
end | |
namespace :cucumber do | |
Cucumber::Rake::Task.new({:ok => ['coverage_setup', 'db:test:prepare']}, 'Run features that should pass') do |t| | |
t.binary = vendored_cucumber_bin # If nil, the gem's binary is used. | |
t.fork = true # You may get faster startup if you set this to false | |
t.profile = 'default' | |
t.rcov = true | |
t.rcov_opts = %w{--rails --exclude \/usr/local\/,features\/} | |
end | |
Cucumber::Rake::Task.new({:wip => 'db:test:prepare'}, 'Run features that are being worked on') do |t| | |
t.binary = vendored_cucumber_bin | |
t.fork = true # You may get faster startup if you set this to false | |
t.profile = 'wip' | |
end | |
Cucumber::Rake::Task.new({:rerun => 'db:test:prepare'}, 'Record failing features and run only them if any exist') do |t| | |
t.binary = vendored_cucumber_bin | |
t.fork = true # You may get faster startup if you set this to false | |
t.profile = 'rerun' | |
end | |
desc 'Run all features' | |
task :all => [:ok, :wip] | |
end | |
task :coverage_setup do | |
rm_rf "coverage" | |
end | |
task :report_setup do | |
rm_rf report_path | |
end | |
desc 'Alias for cucumber:ok' | |
task :cucumber => 'cucumber:ok' | |
task :default => :cucumber | |
task :features => :cucumber do | |
STDERR.puts "*** The 'features' task is deprecated. See rake -T cucumber ***" | |
end | |
rescue LoadError | |
desc 'cucumber rake task not available (cucumber not installed)' | |
task :cucumber do | |
abort 'Cucumber rake task is not available. Be sure to install cucumber as a gem or plugin' | |
end | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment