diff options
Diffstat (limited to 'chef/tasks/rspec.rb')
-rw-r--r-- | chef/tasks/rspec.rb | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/chef/tasks/rspec.rb b/chef/tasks/rspec.rb new file mode 100644 index 0000000000..80b0a79557 --- /dev/null +++ b/chef/tasks/rspec.rb @@ -0,0 +1,54 @@ +require 'rubygems' +require 'rake' +require 'spec/rake/spectask' + +#desc "Run all examples" +#Spec::Rake::SpecTask.new('spec') do |t| +# t.spec_files = FileList[File.join(File.dirname(__FILE__), "..", "spec", "**", "*.rb")] +#end + +require 'spec/rake/spectask' +require 'spec/translator' + +CHEF_ROOT = File.join(File.dirname(__FILE__), "..") + +task :default => :spec + +desc "Run all specs in spec directory" +Spec::Rake::SpecTask.new(:spec) do |t| + t.spec_opts = ['--options', "\"#{CHEF_ROOT}/spec/spec.opts\""] + t.spec_files = FileList['spec/**/*_spec.rb'] +end + +namespace :spec do + desc "Run all specs in spec directory with RCov" + Spec::Rake::SpecTask.new(:rcov) do |t| + t.spec_opts = ['--options', "\"#{CHEF_ROOT}/spec/spec.opts\""] + t.spec_files = FileList['spec/**/*_spec.rb'] + t.rcov = true + t.rcov_opts = lambda do + IO.readlines("#{CHEF_ROOT}/spec/rcov.opts").map {|l| l.chomp.split " "}.flatten + end + end + + desc "Print Specdoc for all specs" + Spec::Rake::SpecTask.new(:doc) do |t| + t.spec_opts = ["--format", "specdoc", "--dry-run"] + t.spec_files = FileList['spec/**/*_spec.rb'] + end + + [:unit].each do |sub| + desc "Run the specs under spec/#{sub}" + Spec::Rake::SpecTask.new(sub) do |t| + t.spec_opts = ['--options', "\"#{CHEF_ROOT}/spec/spec.opts\""] + t.spec_files = FileList["spec/#{sub}/**/*_spec.rb"] + end + end + + desc "Translate/upgrade specs using the built-in translator" + task :translate do + translator = ::Spec::Translator.new + dir = CHEF_ROOT + '/spec' + translator.translate(dir, dir) + end +end
\ No newline at end of file |