forked from guard/guard-rspec
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRakefile
41 lines (35 loc) · 1.15 KB
/
Rakefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
require 'bundler'
Bundler::GemHelper.install_tasks
require 'rspec/core/rake_task'
RSpec::Core::RakeTask.new(:spec)
# We define a custom_spec that is default because it depends on the spec:prepare_fixtures task
# This way, CI servers should execute the spec:prepare_fixtures before the spec task, allowing all specs to pass!
task :custom_spec => "spec:prepare_fixtures" do
system 'rake spec'
end
task :default => :custom_spec
namespace :spec do
desc "Run all specs on multiple ruby versions (requires rvm and bundler)"
task :portability do
%w[1.8.7 1.9.2 rbx jruby].each do |version|
system <<-BASH
bash -c 'source ~/.rvm/scripts/rvm;
rvm #{version};
echo "--------- version #{version} ----------\n";
rake spec:prepare_fixtures;
rake spec;'
BASH
end
end
desc "Run bundle install on each fixtures directories with Gemfile"
task :prepare_fixtures do
Dir.foreach("spec/fixtures") do |dir|
if File.exists?("spec/fixtures/#{dir}/Gemfile")
system <<-BASH
cd spec/fixtures/#{dir};
bundle install;
BASH
end
end
end
end