From 37635e61ad2b663542216105ba23042f1e80683c Mon Sep 17 00:00:00 2001 From: SAKATA Sinji Date: Sun, 20 Dec 2020 16:30:11 +0900 Subject: [PATCH] Fix breaking change of execution order on TestTask Due to #357, execution order on Rake 13.0.2 changes from Rake 13.0.1. Example: ``` Rake::TestTask do |t| t.test_files = [ "test/a.rb", "test/b.rb", ] end ``` On 13.0.2, Rake executes test/b.rb before test/a.rb because test/a.rb are loaded before rake_test_loader.rb. rake_test_loader.rb executes the Ruby code in ARGV using Kernel.#require, but does not execute test/a.rb which is already loaded. In addition, Rake 13.0.1 allows specifying test_files without .rb but 13.0.2 doesn't allows. This commit also fixes this problem. ``` Rake::TestTask do |t| t.test_files = [ "test/setup", "test/a.rb", ] end ``` --- lib/rake/testtask.rb | 2 +- test/test_rake_test_task.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/rake/testtask.rb b/lib/rake/testtask.rb index 6150f2f6e..56521d23d 100644 --- a/lib/rake/testtask.rb +++ b/lib/rake/testtask.rb @@ -181,7 +181,7 @@ def run_code # :nodoc: when :testrb "-S testrb" when :rake - "-r#{__dir__}/rake_test_loader" + "#{__dir__}/rake_test_loader.rb" end end diff --git a/test/test_rake_test_task.rb b/test/test_rake_test_task.rb index 8f7d13f84..fdb844607 100644 --- a/test/test_rake_test_task.rb +++ b/test/test_rake_test_task.rb @@ -128,7 +128,7 @@ def test_run_code_rake t.loader = :rake end - assert_match(/\A-r.*?\Z/, test_task.run_code) + assert_includes test_task.run_code, "lib/rake/rake_test_loader.rb" ensure Gem.loaded_specs["rake"] = rake end