lib/test/unit/ui/testrunner.rb in test-unit-2.0.9 vs lib/test/unit/ui/testrunner.rb in test-unit-2.1.0
- old
+ new
@@ -4,16 +4,41 @@
module Unit
module UI
class TestRunner
extend TestRunnerUtilities
+ attr_reader :listeners
def initialize(suite, options={})
if suite.respond_to?(:suite)
@suite = suite.suite
else
@suite = suite
end
@options = options
+ @listeners = @options[:listeners] || []
+ end
+
+ # Begins the test run.
+ def start
+ setup_mediator
+ attach_to_mediator
+ attach_listeners
+ start_mediator
+ end
+
+ private
+ def setup_mediator
+ @mediator = TestRunnerMediator.new(@suite)
+ end
+
+ def attach_listeners
+ @listeners.each do |listener|
+ listener.attach_to_mediator(@mediator)
+ end
+ end
+
+ def start_mediator
+ @mediator.run_suite
end
def diff_target_string?(string)
Assertions::AssertionMessage.diff_target_string?(string)
end