diff --git a/railties/lib/rails/backtrace_cleaner.rb b/railties/lib/rails/backtrace_cleaner.rb index 6ac963e1efe88..485ab3e1c2d67 100644 --- a/railties/lib/rails/backtrace_cleaner.rb +++ b/railties/lib/rails/backtrace_cleaner.rb @@ -4,7 +4,7 @@ module Rails class BacktraceCleaner < ActiveSupport::BacktraceCleaner - APP_DIRS_PATTERN = /\A\/?(?:app|config|lib|test|\(\w*\))/ + APP_DIRS_PATTERN = /\A(?:\.\/)?(?:app|config|lib|test|\(\w*\))/ RENDER_TEMPLATE_PATTERN = /:in `.*_\w+_{2,3}\d+_\d+'/ def initialize @@ -20,9 +20,6 @@ def initialize line end end - add_filter do |line| - line.start_with?("./") ? line.from(1) : line - end add_silencer { |line| !APP_DIRS_PATTERN.match?(line) } end end diff --git a/railties/test/backtrace_cleaner_test.rb b/railties/test/backtrace_cleaner_test.rb index 6de23acebe18d..95797cd83c020 100644 --- a/railties/test/backtrace_cleaner_test.rb +++ b/railties/test/backtrace_cleaner_test.rb @@ -17,6 +17,15 @@ def setup assert_equal 1, result.length end + test "should show relative paths" do + backtrace = [ "./test/backtrace_cleaner_test.rb:123", + "/Path/to/rails/activesupport/some_testing_file.rb:42:in `test'", + "bin/rails:4:in `
'" ] + result = @cleaner.clean(backtrace) + assert_equal "./test/backtrace_cleaner_test.rb:123", result[0] + assert_equal 1, result.length + end + test "can filter for noise" do backtrace = [ "(irb):1", "/Path/to/rails/railties/lib/rails/commands/console.rb:77:in `start'",