Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Show minitest options in test runner help #29994

Merged
merged 1 commit into from
Aug 14, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
3 changes: 3 additions & 0 deletions railties/lib/minitest/rails_plugin.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
require "active_support/core_ext/module/attribute_accessors"
require "rails/test_unit/reporter"
require "rails/test_unit/runner"

module Minitest
class SuppressedSummaryReporter < SummaryReporter
Expand All @@ -10,6 +11,8 @@ def aggregated_results(*)
end

def self.plugin_rails_options(opts, options)
Rails::TestUnit::Runner.attach_before_load_options(opts)

opts.on("-b", "--backtrace", "Show the complete backtrace") do
options[:full_backtrace] = true
end
Expand Down
35 changes: 14 additions & 21 deletions railties/lib/rails/commands/test/test_command.rb
Original file line number Diff line number Diff line change
@@ -1,33 +1,26 @@
require_relative "../../command"
require_relative "../../test_unit/runner"
require_relative "../../test_unit/reporter"

module Rails
module Command
class TestCommand < Base # :nodoc:
no_commands do
def help
require "optparse"
require "minitest/rails_plugin"
say "Usage: #{Rails::TestUnitReporter.executable} [options] [files or directories]"
say ""
say "You can run a single test by appending a line number to a filename:"
say ""
say " #{Rails::TestUnitReporter.executable} test/models/user_test.rb:27"
say ""
say "You can run multiple files and directories at the same time:"
say ""
say " #{Rails::TestUnitReporter.executable} test/controllers test/integration/login_test.rb"
say ""
say "By default test failures and errors are reported inline during a run."
say ""

opts = OptionParser.new
opts.banner = "Usage: #{Rails::TestUnitReporter.executable} [options] [files or directories]"
opts.separator ""
opts.separator "You can run a single test by appending a line number to a filename:"
opts.separator ""
opts.separator " #{Rails::TestUnitReporter.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 " #{Rails::TestUnitReporter.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:"
Rails::TestUnit::Runner.options(opts)
Minitest.plugin_rails_options(opts, {})

say opts
Minitest.run(%w(--help))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ha, clever!

end
end

Expand Down
2 changes: 1 addition & 1 deletion railties/lib/rails/test_unit/runner.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ class Runner
mattr_reader :filters, default: []

class << self
def options(opts)
def attach_before_load_options(opts)
opts.on("--warnings", "-w", "Run with Ruby warnings enabled") {}
opts.on("--environment", "-e", "Run tests in the ENV environment") {}
end
Expand Down