From da34100b700d508c2184fd943e22140740b3be01 Mon Sep 17 00:00:00 2001 From: Dylan Thacker-Smith Date: Thu, 25 Jan 2018 12:00:23 -0500 Subject: [PATCH] Re-raise a LoadError that didn't come from require in the test loader --- lib/rake/rake_test_loader.rb | 1 + test/test_rake_rake_test_loader.rb | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/lib/rake/rake_test_loader.rb b/lib/rake/rake_test_loader.rb index ce3dd8eb6..f0f7772ba 100644 --- a/lib/rake/rake_test_loader.rb +++ b/lib/rake/rake_test_loader.rb @@ -19,6 +19,7 @@ false end rescue LoadError => e + raise unless e.path abort "\nFile does not exist: #{e.path}\n\n" end end diff --git a/test/test_rake_rake_test_loader.rb b/test/test_rake_rake_test_loader.rb index fabee4721..bf44235c0 100644 --- a/test/test_rake_rake_test_loader.rb +++ b/test/test_rake_rake_test_loader.rb @@ -24,7 +24,7 @@ def test_pattern $:.replace orig_loaded_features end - def test_load_error + def test_load_error_from_require out, err = capture_io do ARGV.replace %w[no_such_test_file.rb] @@ -44,4 +44,18 @@ def test_load_error assert_match expected, err end + + def test_load_error_raised_explicitly + File.write("error_test.rb", "raise LoadError, 'explicitly raised'") + out, err = capture_io do + ARGV.replace %w[error_test.rb] + + exc = assert_raises(LoadError) do + load @loader + end + assert_equal "explicitly raised", exc.message + end + assert_empty out + assert_empty err + end end