class Quails::TestUnit::Runner
Public Class Methods
attach_before_load_options(opts)
click to toggle source
# File railties/lib/rails/test_unit/runner.rb, line 14 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
compose_filter(runnable, filter)
click to toggle source
# File railties/lib/rails/test_unit/runner.rb, line 53 def compose_filter(runnable, filter) if filters.any? { |_, lines| lines.any? } CompositeFilter.new(runnable, filter, filters) else filter end end
load_tests(argv)
click to toggle source
# File railties/lib/rails/test_unit/runner.rb, line 44 def load_tests(argv) patterns = extract_filters(argv) tests = Rake::FileList[patterns.any? ? patterns : "test/**/*_test.rb"] tests.exclude("test/system/**/*") if patterns.empty? tests.to_a.each { |path| require File.expand_path(path) } end
parse_options(argv)
click to toggle source
# File railties/lib/rails/test_unit/runner.rb, line 19 def parse_options(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
rake_run(argv = [])
click to toggle source
# File railties/lib/rails/test_unit/runner.rb, line 32 def rake_run(argv = []) ARGV.replace Shellwords.split(ENV["TESTOPTS"] || "") run(argv) end
run(argv = [])
click to toggle source
# File railties/lib/rails/test_unit/runner.rb, line 38 def run(argv = []) load_tests(argv) require "active_support/testing/autorun" end
Private Class Methods
extract_filters(argv)
click to toggle source
# File railties/lib/rails/test_unit/runner.rb, line 62 def extract_filters(argv) # Extract absolute and relative paths but skip -n /.*/ regexp filters. argv.select { |arg| arg =~ %r%^/?\w+/% && !arg.end_with?("/") }.map do |path| case when path =~ /(:\d+)+$/ file, *lines = path.split(":") filters << [ file, lines ] file when Dir.exist?(path) "#{path}/**/*_test.rb" else filters << [ path, [] ] path end end end