Module: Minitest
- Defined in:
- lib/rails/test_unit/minitest_plugin.rb
Defined Under Namespace
Classes: 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
-
.rake_run(patterns) ⇒ Object
Running several Rake tasks in a single command would trip up the runner, as the patterns would also contain the other Rake tasks.
Class Method Details
.plugin_rails_init(options) ⇒ Object
Owes great inspiration to test runner trailblazers like RSpec, minitest-reporters, maxitest and others.
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/rails/test_unit/minitest_plugin.rb', line 71 def self.plugin_rails_init() self.run_with_rails_extension = true ENV["RAILS_ENV"] = [:environment] || "test" ::Rails::TestRequirer.require_files([:patterns]) unless run_with_autorun unless [:full_backtrace] || ENV["BACKTRACE"] # Plugin can run without Rails loaded, check before filtering. Minitest.backtrace_filter = ::Rails.backtrace_cleaner if ::Rails.respond_to?(:backtrace_cleaner) end # Replace progress reporter for colors. reporter.reporters.delete_if { |reporter| reporter.kind_of?(SummaryReporter) || reporter.kind_of?(ProgressReporter) } reporter << SuppressedSummaryReporter.new([:io], ) reporter << ::Rails::TestUnitReporter.new([:io], ) end |
.plugin_rails_options(opts, options) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/rails/test_unit/minitest_plugin.rb', line 14 def self.(opts, ) executable = ::Rails::TestUnitReporter.executable opts.separator "" opts.separator "Usage: #{executable} [options] [files or directories]" opts.separator "You can run a single test by appending a line number to a filename:" opts.separator "" opts.separator " #{executable} test/models/user_test.rb:27" opts.separator "" opts.separator "You can run multiple files and directories at the same time:" opts.separator "" opts.separator " #{executable} test/controllers test/integration/login_test.rb" opts.separator "" opts.separator "By default test failures and errors are reported inline during a run." opts.separator "" opts.separator "Rails options:" opts.on("-e", "--environment ENV", "Run tests in the ENV environment") do |env| [:environment] = env.strip end 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 [:color] = true [:output_inline] = true [:patterns] = defined?(@rake_patterns) ? @rake_patterns : opts.order! end |
.rake_run(patterns) ⇒ Object
Running several Rake tasks in a single command would trip up the runner, as the patterns would also contain the other Rake tasks.
62 63 64 65 66 67 |
# File 'lib/rails/test_unit/minitest_plugin.rb', line 62 def self.rake_run(patterns) # :nodoc: @rake_patterns = patterns passed = run(Shellwords.split(ENV['TESTOPTS'] || '')) exit passed unless passed passed end |