diff options
| -rw-r--r-- | railties/lib/rails/test_unit/sub_test_task.rb | 32 | ||||
| -rw-r--r-- | railties/lib/rails/test_unit/testing.rake | 16 | 
2 files changed, 17 insertions, 31 deletions
diff --git a/railties/lib/rails/test_unit/sub_test_task.rb b/railties/lib/rails/test_unit/sub_test_task.rb index 284c70050f..87b6f9b5a4 100644 --- a/railties/lib/rails/test_unit/sub_test_task.rb +++ b/railties/lib/rails/test_unit/sub_test_task.rb @@ -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 diff --git a/railties/lib/rails/test_unit/testing.rake b/railties/lib/rails/test_unit/testing.rake index a23d22d607..290005993a 100644 --- a/railties/lib/rails/test_unit/testing.rake +++ b/railties/lib/rails/test_unit/testing.rake @@ -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 } +      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  | 
