Provides an interface to write any given UI against, hopefully making it easy to write new UIs.
Creates a new TestRunnerMediator initialized to run the passed suite.
# File test/unit/ui/testrunnermediator.rb, line 26
def initialize(suite)
@suite = suite
end
Runs the suite the TestRunnerMediator was created with.
# File test/unit/ui/testrunnermediator.rb, line 32
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