Class | Test::Unit::UI::Console::TestRunner |
In: |
lib/test/unit/ui/console/testrunner.rb
|
Parent: | Object |
Runs a Test::Unit::TestSuite on the console.
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.
# File lib/test/unit/ui/console/testrunner.rb, line 25 25: def initialize(suite, output_level=NORMAL, io=STDOUT) 26: if (suite.respond_to?(:suite)) 27: @suite = suite.suite 28: else 29: @suite = suite 30: end 31: @output_level = output_level 32: @io = io 33: @already_outputted = false 34: @faults = [] 35: end
Begins the test run.
# File lib/test/unit/ui/console/testrunner.rb, line 38 38: def start 39: setup_mediator 40: attach_to_mediator 41: return start_mediator 42: end
# File lib/test/unit/ui/console/testrunner.rb, line 70 70: def add_fault(fault) 71: @faults << fault 72: output_single(fault.single_character_display, PROGRESS_ONLY) 73: @already_outputted = true 74: end
# File lib/test/unit/ui/console/testrunner.rb, line 58 58: def attach_to_mediator 59: @mediator.add_listener(TestResult::FAULT, &method(:add_fault)) 60: @mediator.add_listener(TestRunnerMediator::STARTED, &method(:started)) 61: @mediator.add_listener(TestRunnerMediator::FINISHED, &method(:finished)) 62: @mediator.add_listener(TestCase::STARTED, &method(:test_started)) 63: @mediator.add_listener(TestCase::FINISHED, &method(:test_finished)) 64: end
# File lib/test/unit/ui/console/testrunner.rb, line 54 54: def create_mediator(suite) 55: return TestRunnerMediator.new(suite) 56: end
# File lib/test/unit/ui/console/testrunner.rb, line 81 81: def finished(elapsed_time) 82: nl 83: output("Finished in #{elapsed_time} seconds.") 84: @faults.each_with_index do |fault, index| 85: nl 86: output("%3d) %s" % [index + 1, fault.long_display]) 87: end 88: nl 89: output(@result) 90: end
# File lib/test/unit/ui/console/testrunner.rb, line 102 102: def nl(level=NORMAL) 103: output("", level) 104: end
# File lib/test/unit/ui/console/testrunner.rb, line 106 106: def output(something, level=NORMAL) 107: @io.puts(something) if (output?(level)) 108: @io.flush 109: end
# File lib/test/unit/ui/console/testrunner.rb, line 116 116: def output?(level) 117: level <= @output_level 118: end
# File lib/test/unit/ui/console/testrunner.rb, line 111 111: def output_single(something, level=NORMAL) 112: @io.write(something) if (output?(level)) 113: @io.flush 114: end
# File lib/test/unit/ui/console/testrunner.rb, line 45 45: def setup_mediator 46: @mediator = create_mediator(@suite) 47: suite_name = @suite.to_s 48: if ( @suite.kind_of?(Module) ) 49: suite_name = @suite.name 50: end 51: output("Loaded suite #{suite_name}") 52: end
# File lib/test/unit/ui/console/testrunner.rb, line 66 66: def start_mediator 67: return @mediator.run_suite 68: end
# File lib/test/unit/ui/console/testrunner.rb, line 76 76: def started(result) 77: @result = result 78: output("Started") 79: end
# File lib/test/unit/ui/console/testrunner.rb, line 96 96: def test_finished(name) 97: output_single(".", PROGRESS_ONLY) unless (@already_outputted) 98: nl(VERBOSE) 99: @already_outputted = false 100: end