[rspec-users] Failing rspec story not causing a CruiseControl.rb build to fail?
Ben Mabey
ben at benmabey.com
Tue May 27 16:56:28 EDT 2008
Sean,
This is what I have on a project that is running CC.rb with stories:
desc "Task for cruise Control"
task :cruise do
RAILS_ENV = ENV['RAILS_ENV'] = 'test' # Without this, it will drop
your production database.
CruiseControl::invoke_rake_task 'db:reset_all'
CruiseControl::invoke_rake_task 'cruise_coverage'
CruiseControl::invoke_rake_task 'stories:all'
sh "rake kablame:git:specs >
#{ENV['CC_BUILD_ARTIFACTS']}/hall_of_shame.txt"
end
namespace :stories do
desc "Run all stories (that are not pending)"
task :all do
ruby "stories/all.rb --format plain"
end
end
I think your problem is that you are using a SpecTask to run the
stories... I don't know if that is supported. I just open up a new ruby
process to run the stories.
Hope that helps,
Ben
Sean Miller wrote:
> Thanks! The problem seems to be that the rake spec task is messing up the exit code of the story spec, but I still can't see how.
>
> When I run the failing story spec outside of a rake task (ruby stories/all.rb), I get the correct exit code of 1.
>
> When I run it in rake spec:stories, I get the incorrect exit code of 0.
>
> namespace :spec do
>
> desc "run spec user stories"
> Spec::Rake::SpecTask.new('stories') do |t|
> t.spec_files = FileList['stories/**/*_stories.rb']
> t.rcov = true
> output_root = ENV["CC_BUILD_ARTIFACTS"] || "spec"
> t.rcov_dir = "#{output_root}/user_stories_coverage"
> t.rcov_opts = RCOV_OPTIONS
> end
>
> But when I make one of the non-story specs fail, I get the exit code of 1 both running the spec outside of rake and as part of "rake spec:coverage", and the rake SpecTask is defined the same way:
>
>
> desc "Run all examples with RCov"
> Spec::Rake::SpecTask.new('coverage') do |t|
> t.spec_files = full_spec_file_list
> t.rcov = true
> output_root = ENV["CC_BUILD_ARTIFACTS"] || "spec"
> t.rcov_dir = "#{output_root}/rspec_coverage"
> t.rcov_opts = RCOV_OPTIONS
> end
>
> Any ideas?
>
> Thanks,
> Sean.
>
> On Tue, 27 May 2008 11:07:23 -0600, Ben Mabey <ben at benmabey.com> wrote:
>
>> Pat Maddox wrote:
>>
>>> On Tue, May 27, 2008 at 8:41 AM, Sean Miller <sean at seanmiller.ca> wrote:
>>>
>>>
>>>> We've just added rspec stories to our CruiseControl.rb build. When
>>>>
>> there's a failing scenario we see the failure in the log output, but it
>> doesn't cause the CruiseControl build to fail. We've also just upgraded
>> to the latest rspec version, 1.1.4, which fixes rspec bug 228, but the
>> CC.rb build is still passing.
>>
>>>> Has anyone got failing rspec stories making CruiseControl.rb fail?
>>>>
>>>> Thanks,
>>>> Sean Miller.
>>>>
>>>> _______________________________________________
>>>> rspec-users mailing list
>>>> rspec-users at rubyforge.org
>>>> http://rubyforge.org/mailman/listinfo/rspec-users
>>>>
>>>>
>>>>
>>> I wasn't aware that CC.rb integrated with story runner yet. Are you
>>> sure it does?
>>>
>>> Pat
>>> _______________________________________________
>>> rspec-users mailing list
>>> rspec-users at rubyforge.org
>>> http://rubyforge.org/mailman/listinfo/rspec-users
>>>
>>>
>> To integrate with CC.rb all is that required is that your build
>> task/process exits with the appropriate code (0 or non-zero for
>> failing.) I originally made the patch so that we could integrate it
>> with CC.rb...
>>
>> Sean, if you run the stories from the command line and it fails what is
>> the exit code? (run the stories and type 'echo $?' to find out.) If
>> you can verify that the exit code is correct then the problem might be
>> with your cc.rb rake task. Maybe you could post it? Also, what version
>> of ruby are you using? I have heard that a recent version of ruby had
>> an at_exit bug, so try it on different versions of ruby to see if it is
>> environment specific.
>>
>> -Ben
>>
>> _______________________________________________
>> rspec-users mailing list
>> rspec-users at rubyforge.org
>> http://rubyforge.org/mailman/listinfo/rspec-users
>>
>
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
>
More information about the rspec-users
mailing list