From a9eb12393fa1245620533a58ed36f651558ecae8 Mon Sep 17 00:00:00 2001 From: Arthur Neves Date: Thu, 5 Mar 2015 14:20:20 -0500 Subject: Use absolute path on find_method location for the runner --- railties/lib/rails/test_unit/runner.rb | 2 +- railties/test/test_unit/runner_test.rb | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/railties/lib/rails/test_unit/runner.rb b/railties/lib/rails/test_unit/runner.rb index aec4707947..6700d90a33 100644 --- a/railties/lib/rails/test_unit/runner.rb +++ b/railties/lib/rails/test_unit/runner.rb @@ -129,7 +129,7 @@ module Rails location = method.source_location start_line = location.last end_line = method.source.split("\n").size + start_line - 1 - methods_map << [location.first, test_method, start_line, end_line] + methods_map << [File.expand_path(location.first), test_method, start_line, end_line] end end methods_map diff --git a/railties/test/test_unit/runner_test.rb b/railties/test/test_unit/runner_test.rb index c040c71635..9ea8b2c114 100644 --- a/railties/test/test_unit/runner_test.rb +++ b/railties/test/test_unit/runner_test.rb @@ -41,7 +41,7 @@ class TestUnitTestRunnerTest < ActiveSupport::TestCase test "parse the filename and line" do file = "test/test_unit/runner_test.rb" - absolute_file = __FILE__ + absolute_file = File.expand_path __FILE__ options = @options.parse(["#{file}:20"]) assert_equal absolute_file, options[:filename] assert_equal 20, options[:line] @@ -90,21 +90,22 @@ class TestUnitTestRunnerTest < ActiveSupport::TestCase test "run multiple files and run one file by line" do line = __LINE__ + absolute_file = File.expand_path(__FILE__) options = @options.parse([__dir__, "#{__FILE__}:#{line}"]) assert_equal ["#{__dir__}/**/*_test.rb"], options[:patterns] - assert_equal __FILE__, options[:filename] + assert_equal absolute_file, options[:filename] assert_equal line, options[:line] runner = Rails::TestRunner.new(options) - assert_equal [__FILE__], runner.test_files, 'Only returns the file that running by line' + assert_equal [absolute_file], runner.test_files, 'Only returns the file that running by line' end test "running multiple files passing line number" do line = __LINE__ options = @options.parse(["foobar.rb:8", "#{__FILE__}:#{line}"]) - assert_equal __FILE__, options[:filename], 'Returns the last file' + assert_equal File.expand_path(__FILE__), options[:filename], 'Returns the last file' assert_equal line, options[:line] end end -- cgit v1.2.3