diff --git a/railties/lib/rails/application.rb b/railties/lib/rails/application.rb index 649bd72bd5..d95c0ce75d 100644 --- a/railties/lib/rails/application.rb +++ b/railties/lib/rails/application.rb @@ -514,7 +514,7 @@ module Rails def run_tasks_blocks(app) #:nodoc: railties.each { |r| r.run_tasks_blocks(app) } super - require "rails/tasks" + load "rails/tasks.rb" task :environment do ActiveSupport.on_load(:before_initialize) { config.eager_load = config.rake_eager_load } diff --git a/railties/test/application/rake_test.rb b/railties/test/application/rake_test.rb index 9cb908d12f..fdb4da55e2 100644 --- a/railties/test/application/rake_test.rb +++ b/railties/test/application/rake_test.rb @@ -29,6 +29,18 @@ module ApplicationTests assert_equal ["Rails version"], rails("about").scan(/^Rails version/) end + test "tasks can invoke framework tasks via Rails::Command.invoke" do + add_to_config <<~RUBY + rake_tasks do + task :invoke_about do + Rails::Command.invoke :about + end + end + RUBY + + assert_match(/^Rails version/, rails("invoke_about")) + end + test "task backtrace is silenced" do add_to_config <<-RUBY rake_tasks do