Skip to content

Commit

Permalink
Fix that failed tests should exit with a nonzero error code.
Browse files Browse the repository at this point in the history
Partially reverts 14c89e7.

Hat tip to @tenderlove for paring down the TestTask!
  • Loading branch information
jeremy committed Feb 7, 2012
1 parent 641359e commit abe4a8d
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 31 deletions.
32 changes: 2 additions & 30 deletions railties/lib/rails/test_unit/sub_test_task.rb
Original file line number Diff line number Diff line change
@@ -1,36 +1,8 @@
module Rails
# Don't abort when tests fail; move on the next test task.
# Silence the default description to cut down on `rake -T` noise.
class SubTestTask < Rake::TestTask
# Create the tasks defined by this task lib.
def define
lib_path = @libs.join(File::PATH_SEPARATOR)
task @name do
run_code = ''
RakeFileUtils.verbose(@verbose) do
run_code =
case @loader
when :direct
"-e 'ARGV.each{|f| load f}'"
when :testrb
"-S testrb #{fix}"
when :rake
rake_loader
end
@ruby_opts.unshift( "-I\"#{lib_path}\"" )
@ruby_opts.unshift( "-w" ) if @warning

begin
ruby @ruby_opts.join(" ") +
" \"#{run_code}\" " +
file_list.collect { |fn| "\"#{fn}\"" }.join(' ') +
" #{option_list}"
rescue => error
warn "Error running #{name}: #{error.inspect}"
end
end
end
self
def desc(string)
# Ignore the description.
end
end
end
16 changes: 15 additions & 1 deletion railties/lib/rails/test_unit/testing.rake
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,21 @@ namespace :test do
# Placeholder task for other Railtie and plugins to enhance. See Active Record for an example.
end

task :run => %w(test:units test:functionals test:integration)
task :run do
errors = %w(test:units test:functionals test:integration).collect do |task|
begin
Rake::Task[task].invoke
nil
rescue => e
{ :task => task, :exception => e }

This comment has been minimized.

Copy link
@tenderlove

tenderlove Feb 7, 2012

Member

The previous code had a warning emitted here. Do we want to keep that functionality?

This comment has been minimized.

Copy link
@jeremy

jeremy Feb 7, 2012

Author Member

That was to emulate the message that rescued exception would've resulted in. So we're good without it now.

end
end.compact

if errors.any?
puts errors.map { |e| "Errors running #{e[:task]}! #{e[:exception].inspect}" }.join("\n")
abort
end
end

Rake::TestTask.new(:recent => "test:prepare") do |t|
since = TEST_CHANGES_SINCE
Expand Down

4 comments on commit abe4a8d

@11factory
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the fix ! Our jenkins was not complaining about failing test..
When will you release that fix ?

@tenderlove
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll backport this commit to 3-2-stable (if it hasn't been backported already). I'm not sure about a release date for 3.2.2 though.

@23tux
Copy link

@23tux 23tux commented on abe4a8d Feb 27, 2012

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great, now my CruiseControl.rb installation is working! Looking forward to 3.2.2 stable

@TimWalker
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Curious if there are any unit tests around this?

Please sign in to comment.