On Wed, Jul 9, 2008 at 10:09 PM, David Chelimsky <[EMAIL PROTECTED]>
wrote:
> On Jul 9, 2008, at 5:52 PM, Rick DeNatale wrote:
>
> spec:models, views, controllers and helpers are all defined already in
> vendor/plugins/rspec-rails/tasks/rspec.rake, so the next keyword is being
> invoked for all of those. You'll need to undefined them before you redefine
> them here.
>
> spec_tasks.each {|t| Rake::Task::TASKS.delete t}
>
>
Thanks David, I figured it was something like that. I had to modify it a
bit since there is no TASKS constant. Rake::Task does have a tasks method,
but it wasn't clear that deleting an element would work since it must be
flattening the task namespace hierarchy. So I ended up with this:
begin
require RAILS_ROOT + '/vendor/plugins/rspec/lib/spec/rake/spectask'
namespace :spec do
spec_subdirs.each do |task|
if Rake::Task.task_defined?("spec:#{task}")
Rake::Task["spec:#{task}"].fail_on_error = false
else
desc "Run the specs under spec/#{task}"
Spec::Rake::SpecTask.new(task) do |t|
t.spec_opts = ['--options', "\"#{RAILS_ROOT}/spec/spec.opts\""]
t.spec_files = FileList["spec/#{task}/*_spec.rb"]
t.fail_on_error = false
end
end
if Rake::Task.task_defined?("spec:#{task}:rcov")
Rake::Task["spec:#{task}:rcov"].fail_on_error = false
else
namespace(task) do
Spec::Rake::SpecTask.new(:rcov) do |t|
t.spec_opts = ['--options', "\"#{RAILS_ROOT}/spec/spec.opts\""]
t.rcov_opts = ['--include', "\"app/#{task}/.*.rb$\""]
t.rcov = true
t.fail_on_error = false
t.spec_files = FileList["spec/#{task}/*_spec.rb"]
end
end
end
end
end
rescue LoadError => e
puts "Spec tasks are not available - #{e}"
end
But this still DOESN'T WORK.
It turns out that this code is running BEFORE the plugin creates its tasks
so those are overwriting mine.
I'm beginning to think that I need to patch RSpec to allow the default value
of fail_on_error to be set with either an environment variable or in
spec.opts.
Thoughts?
--
Rick DeNatale
My blog on Ruby
http://talklikeaduck.denhaven2.com/
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users