class Test::Unit::TestSuiteRunner

Public Class Methods

n_workers() click to toggle source
# File test-unit-3.6.7/lib/test/unit/test-suite-runner.rb, line 20
def n_workers
  @n_workers
end
n_workers=(n) click to toggle source
# File test-unit-3.6.7/lib/test/unit/test-suite-runner.rb, line 24
def n_workers=(n)
  @n_workers = n
end
new(test_suite) click to toggle source
# File test-unit-3.6.7/lib/test/unit/test-suite-runner.rb, line 29
def initialize(test_suite)
  @test_suite = test_suite
end
run_all_tests() { || ... } click to toggle source
# File test-unit-3.6.7/lib/test/unit/test-suite-runner.rb, line 16
def run_all_tests
  yield
end

Public Instance Methods

run(result) { |STARTED, name| ... } click to toggle source
# File test-unit-3.6.7/lib/test/unit/test-suite-runner.rb, line 33
def run(result, &progress_block)
  yield(TestSuite::STARTED, @test_suite.name)
  yield(TestSuite::STARTED_OBJECT, @test_suite)
  run_startup(result)
  run_tests(result, &progress_block)
ensure
  begin
    run_shutdown(result)
  ensure
    yield(TestSuite::FINISHED, @test_suite.name)
    yield(TestSuite::FINISHED_OBJECT, @test_suite)
  end
end

Private Instance Methods

handle_exception(exception, result) click to toggle source
# File test-unit-3.6.7/lib/test/unit/test-suite-runner.rb, line 116
def handle_exception(exception, result)
  case exception
  when *ErrorHandler::PASS_THROUGH_EXCEPTIONS
    false
  else
    result.add_error(Error.new(@test_suite.test_case.name, exception))
    true
  end
end
run_shutdown(result) click to toggle source
# File test-unit-3.6.7/lib/test/unit/test-suite-runner.rb, line 106
def run_shutdown(result)
  test_case = @test_suite.test_case
  return if test_case.nil? or !test_case.respond_to?(:shutdown)
  begin
    test_case.shutdown
  rescue Exception
    raise unless handle_exception($!, result)
  end
end
run_startup(result) click to toggle source
# File test-unit-3.6.7/lib/test/unit/test-suite-runner.rb, line 48
def run_startup(result)
  test_case = @test_suite.test_case
  return if test_case.nil? or !test_case.respond_to?(:startup)
  begin
    test_case.startup
  rescue Exception
    raise unless handle_exception($!, result)
  end
end
run_test(test, result) { |STARTED_OBJECT, test| ... } click to toggle source
# File test-unit-3.6.7/lib/test/unit/test-suite-runner.rb, line 64
def run_test(test, result)
  finished_is_yielded = false
  finished_object_is_yielded = false
  previous_event_name = nil
  event_listener = lambda do |event_name, *args|
    case previous_event_name
    when Test::Unit::TestCase::STARTED
      if event_name != Test::Unit::TestCase::STARTED_OBJECT
        yield(Test::Unit::TestCase::STARTED_OBJECT, test)
      end
    when Test::Unit::TestCase::FINISHED
      if event_name != Test::Unit::TestCase::FINISHED_OBJECT
        yield(Test::Unit::TestCase::FINISHED_OBJECT, test)
      end
      finished_object_is_yielded = true
    end

    case event_name
    when Test::Unit::TestCase::STARTED
      finished_is_yielded = false
      finished_object_is_yielded = false
    when Test::Unit::TestCase::FINISHED
      finished_is_yielded = true
    end

    previous_event_name = event_name
    yield(event_name, *args)
  end

  if test.method(:run).arity == -2
    test.run(result, runner_class: self.class, &event_listener)
  else
    # For backward compatibility. There are scripts that overrides
    # Test::Unit::TestCase#run without keyword arguments.
    test.run(result, &event_listener)
  end

  if finished_is_yielded and not finished_object_is_yielded
    yield(Test::Unit::TestCase::FINISHED_OBJECT, test)
  end
end
run_tests(result, &progress_block) click to toggle source
# File test-unit-3.6.7/lib/test/unit/test-suite-runner.rb, line 58
def run_tests(result, &progress_block)
  @test_suite.tests.each do |test|
    run_test(test, result, &progress_block)
  end
end