[rspec-users] Can I get RSpec NOT to abort rake on failing specs?

Rick DeNatale rick.denatale at gmail.com
Wed Jul 9 18:52:01 EDT 2008

At work we've got a rather complex app with both specs and tests. Our
default rake task runs all our our tests and specs.  We've also got separate
rake tasks to run groups of tests and specs in the various subdirectories.
The default task simply lists all the individual tasks as pre-reqs.

We do a lot of branching and merging, so we really want to run all of the
tests and specs to see all failures.

We just realized that Rspec is aborting rake when a spec fails or errors in
an individual rake task.  I've been trying to fix this to no avail.  I
notice that SpecTask has an attribute accessor fail_on_error which looks
like it SHOULD prevent terminating rake if it's set to false.  So I tried
that and it doesn't seem to work.  Here's our projects lib/tasks/spec.rake,
any ideas?

def spec_tasks
  %w{spec:controllers spec:models spec:helpers spec:views spec:lib} +
spec_subdirs.map {|t| "spec:#{t}"}

  require RAILS_ROOT + '/vendor/plugins/rspec/lib/spec/rake/spectask'

  namespace :spec do
   spec_subdirs.each do |task|
     next if Rake::Task.task_defined?("spec:#{task}")

     desc "Run the specs under spec/#{task}"
     Spec::Rake::SpecTask.new(task) do |t|
       t.fail_on_error = false
       t.spec_opts = ['--options', "\"#{RAILS_ROOT}/spec/spec.opts\""]
       t.spec_files = FileList["spec/#{task}/*_spec.rb"]

     namespace(task) do
       Spec::Rake::SpecTask.new(:rcov) do |t|
         t.fail_on_error = false
         t.spec_opts = ['--options', "\"#{RAILS_ROOT}/spec/spec.opts\""]
         t.rcov_opts = ['--include', "\"app/#{task}/.*.rb$\""]
         t.rcov = true
         t.spec_files = FileList["spec/#{task}/*_spec.rb"]
rescue LoadError => e
  puts "Spec tasks are not available - #{e}"

namespace :spec do
  desc "Run each set of specs individually"
  task :each => spec_tasks

Rick DeNatale

My blog on Ruby
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20080709/cbb5dfc9/attachment.html>

More information about the rspec-users mailing list