File: verbose_backtrace.rb

package info (click to toggle)
ruby-maxitest 5.8.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 536 kB
  • sloc: ruby: 1,578; makefile: 7
file content (35 lines) | stat: -rw-r--r-- 884 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
module Maxitest
  module VerboseBacktrace
    class NullFilter
      def self.filter(backtrace)
        backtrace
      end
    end

    class << self
      attr_accessor :verbose
    end

    def plugin_maxitest_verbose_backtrace_init(options)
      return unless options[:verbose]
      Maxitest::VerboseBacktrace.verbose = true
      Minitest.backtrace_filter = Maxitest::VerboseBacktrace::NullFilter
      Rails.backtrace_cleaner.remove_silencers! if defined?(Rails) && Rails.respond_to?(:backtrace_cleaner)
    end
  end
end

Minitest.extensions << 'maxitest_verbose_backtrace'
Minitest.extend Maxitest::VerboseBacktrace

module Maxitest::VerboseAssertion
  def message
    if Maxitest::VerboseBacktrace.verbose
      "#{self.class}: #{super}\n    #{backtrace.join "\n    "}"
    else
      super
    end
  end
end

Minitest::Assertion.send(:include, Maxitest::VerboseAssertion)