summaryrefslogtreecommitdiff
path: root/chef/tasks/rspec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'chef/tasks/rspec.rb')
-rw-r--r--chef/tasks/rspec.rb54
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