1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
|
require 'test/unit/ui/testrunnermediator'
require 'test/unit/ui/testrunnerutilities'
module Test
module Unit
module UI
module JUnit
# Runs a Test::Unit::TestSuite on the console.
class TestRunner
extend TestRunnerUtilities
attr_accessor :faults
# Creates a new TestRunner for running the passed
# suite. If quiet_mode is true, the output while
# running is limited to progress dots, errors and
# failures, and the final result. io specifies
# where runner output should go to; defaults to
# STDOUT.
def initialize(suite, output_level=NORMAL, io=STDOUT)
if (suite.respond_to?(:suite))
@suite = suite.suite
else
@suite = suite
end
@output_level = output_level
@io = io
@already_outputted = false
@faults = []
end
# Begins the test run.
def start
setup_mediator
attach_to_mediator
return start_mediator
end
private
def setup_mediator
@mediator = create_mediator(@suite)
suite_name = @suite.to_s
if ( @suite.kind_of?(Module) )
suite_name = @suite.name
end
end
def create_mediator(suite)
return TestRunnerMediator.new(suite)
end
def attach_to_mediator
@mediator.add_listener(TestResult::FAULT, &method(:add_fault))
end
def start_mediator
return @mediator.run_suite
end
def add_fault(fault)
@faults << fault
end
def started(result)
end
def finished(elapsed_time)
end
def test_started(name)
end
def test_finished(name)
end
end
end
end
end
end
if __FILE__ == $0
Test::Unit::UI::JUnit::TestRunner.start_command_line_test
end
|