Class: Rails::TestUnit::Runner
- Inherits:
-
Object
- Object
- Rails::TestUnit::Runner
- Defined in:
- lib/rails/test_unit/runner.rb
Constant Summary collapse
- TEST_FOLDERS =
[:models, :helpers, :channels, :controllers, :mailers, :integration, :jobs, :mailboxes]
- PATH_ARGUMENT_PATTERN =
%r"^(?!/.+/$)[.\w]*[/\\]"
Class Method Summary collapse
- .attach_before_load_options(opts) ⇒ Object
- .compose_filter(runnable, filter) ⇒ Object
- .load_tests(argv) ⇒ Object
- .parse_options(argv) ⇒ Object
- .run(argv = []) ⇒ Object
- .run_from_rake(test_command, argv = []) ⇒ Object
Class Method Details
.attach_before_load_options(opts) ⇒ Object
27 28 29 30 |
# File 'lib/rails/test_unit/runner.rb', line 27 def (opts) opts.on("--warnings", "-w", "Run with Ruby warnings enabled") { } opts.on("-e", "--environment ENV", "Run tests in the ENV environment") { } end |
.compose_filter(runnable, filter) ⇒ Object
78 79 80 81 82 83 84 85 86 |
# File 'lib/rails/test_unit/runner.rb', line 78 def compose_filter(runnable, filter) filter = normalize_declarative_test_filter(filter) if filters.any? { |_, lines| lines.any? } CompositeFilter.new(runnable, filter, filters) else filter end end |
.load_tests(argv) ⇒ Object
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/rails/test_unit/runner.rb', line 57 def load_tests(argv) patterns = extract_filters(argv) tests = list_tests(patterns) tests.to_a.each do |path| abs_path = File.(path) require abs_path rescue LoadError => exception if exception.path == abs_path all_tests = list_tests([default_test_glob]) corrections = DidYouMean::SpellChecker.new(dictionary: all_tests).correct(path) if corrections.empty? raise exception end raise InvalidTestError.new(path, DidYouMean::Formatter.(corrections)) else raise end end end |
.parse_options(argv) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/rails/test_unit/runner.rb', line 32 def (argv) # Perform manual parsing and cleanup since option parser raises on unknown options. env_index = argv.index("--environment") || argv.index("-e") if env_index argv.delete_at(env_index) environment = argv.delete_at(env_index).strip end ENV["RAILS_ENV"] = environment || "test" w_index = argv.index("--warnings") || argv.index("-w") $VERBOSE = argv.delete_at(w_index) if w_index end |
.run(argv = []) ⇒ Object
51 52 53 54 55 |
# File 'lib/rails/test_unit/runner.rb', line 51 def run(argv = []) load_tests(argv) require "active_support/testing/autorun" end |
.run_from_rake(test_command, argv = []) ⇒ Object
45 46 47 48 49 |
# File 'lib/rails/test_unit/runner.rb', line 45 def run_from_rake(test_command, argv = []) # Ensure the tests run during the Rake Task action, not when the process exits success = system("rails", test_command, *argv, *Shellwords.split(ENV["TESTOPTS"] || "")) success || exit(false) end |