Test::Unit::UI::TestRunnerMediator (Class)

In: test/unit/ui/testrunnermediator.rb
Parent: Object

Provides an interface to write any given UI against, hopefully making it easy to write new UIs.

Methods

new   run_suite  

Constants

RESET = name + "::RESET"
STARTED = name + "::STARTED"
FINISHED = name + "::FINISHED"

Included Modules

Public Class methods

Creates a new TestRunnerMediator initialized to run the passed suite.

[Source]

# File test/unit/ui/testrunnermediator.rb, line 24
        def initialize(suite)
          @suite = suite
        end

Public Instance methods

Runs the suite the TestRunnerMediator was created with.

[Source]

# File test/unit/ui/testrunnermediator.rb, line 30
        def run_suite
          Unit.run = true
          begin_time = Time.now
          notify_listeners(RESET, @suite.size)
          result = create_result
          notify_listeners(STARTED, result)
          result_listener = result.add_listener(TestResult::CHANGED) do |updated_result|
            notify_listeners(TestResult::CHANGED, updated_result)
          end
          
          fault_listener = result.add_listener(TestResult::FAULT) do |fault|
            notify_listeners(TestResult::FAULT, fault)
          end
          
          @suite.run(result) do |channel, value|
            notify_listeners(channel, value)
          end
          
          result.remove_listener(TestResult::FAULT, fault_listener)
          result.remove_listener(TestResult::CHANGED, result_listener)
          end_time = Time.now
          elapsed_time = end_time - begin_time
          notify_listeners(FINISHED, elapsed_time) #"Finished in #{elapsed_time} seconds.")

          return result
        end

[Validate]