Module: Minitest
- Defined in:
- railties/lib/minitest/rails_plugin.rb
Defined Under Namespace
Classes: BacktraceFilterWithFallback, ProfileReporter, SuppressedSummaryReporter
Class Method Summary collapse
-
.plugin_rails_init(options) ⇒ Object
Owes great inspiration to test runner trailblazers like RSpec, minitest-reporters, maxitest, and others.
- .plugin_rails_options(opts, options) ⇒ Object
Class Method Details
.plugin_rails_init(options) ⇒ Object
Owes great inspiration to test runner trailblazers like RSpec, minitest-reporters, maxitest, and others.
111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 |
# File 'railties/lib/minitest/rails_plugin.rb', line 111 def self.plugin_rails_init() # Don't mess with Minitest unless RAILS_ENV is set return unless ENV["RAILS_ENV"] || ENV["RAILS_MINITEST_PLUGIN"] unless [:full_backtrace] # Plugin can run without Rails loaded, check before filtering. if ::Rails.respond_to?(:backtrace_cleaner) Minitest.backtrace_filter = BacktraceFilterWithFallback.new(::Rails.backtrace_cleaner, Minitest.backtrace_filter) end end # Suppress summary reports when outputting inline rerun snippets. if reporter.reporters.reject! { |reporter| reporter.kind_of?(SummaryReporter) } reporter << SuppressedSummaryReporter.new([:io], ) end # Replace progress reporter for colors. if reporter.reporters.reject! { |reporter| reporter.kind_of?(ProgressReporter) } reporter << ::Rails::TestUnitReporter.new([:io], ) end # Add slowest tests reporter at the end. if [:profile] reporter << ProfileReporter.new([:io], ) end end |
.plugin_rails_options(opts, options) ⇒ Object
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 |
# File 'railties/lib/minitest/rails_plugin.rb', line 68 def self.(opts, ) ::Rails::TestUnit::Runner.(opts) opts.on("-b", "--backtrace", "Show the complete backtrace") do [:full_backtrace] = true end opts.on("-d", "--defer-output", "Output test failures and errors after the test run") do [:output_inline] = false end opts.on("-f", "--fail-fast", "Abort test run on first failure or error") do [:fail_fast] = true end opts.on("-c", "--[no-]color", "Enable color in the output") do |value| [:color] = value end opts.on("--profile [COUNT]", "Enable profiling of tests and list the slowest test cases (default: 10)") do |value| default_count = 10 if value.nil? count = default_count else count = Integer(value, exception: false) if count.nil? warn("Non integer specified as profile count, separate " \ "your path from options with -- e.g. " \ "`#{::Rails::TestUnitReporter.executable} --profile -- #{value}`") count = default_count end end [:profile] = count end [:color] = true [:output_inline] = true end |