Class | Test::Unit::UI::SpecDox::TestRunner |
In: |
lib/test/spec/dox.rb
|
Parent: | Test::Unit::UI::Console::TestRunner |
# File lib/test/spec/dox.rb, line 11 11: def add_fault(fault) 12: if fault.kind_of? Test::Spec::Disabled 13: @disabled += 1 14: output_no_nl " (disabled)" 15: elsif fault.kind_of? Test::Spec::Empty 16: @empty += 1 17: output_no_nl " (empty)" 18: else 19: @faults << fault 20: word = fault.class.name[/(.*::)?(.*)/, 2].upcase 21: output_no_nl " (#{word} - #{@faults.size})" 22: end 23: end
# File lib/test/spec/dox.rb, line 35 35: def finished(elapsed_time) 36: nl 37: output "Finished in #{elapsed_time} seconds." 38: @faults.each_with_index do |fault, index| 39: nl 40: output("%3d) %s" % [index + 1, fault.long_display]) 41: end 42: nl 43: output_result 44: end
# File lib/test/spec/dox.rb, line 139 139: def indent(depth) 140: @indent = depth 141: @prefix = " " * depth 142: end
# File lib/test/spec/dox.rb, line 118 118: def output_heading(heading) 119: output "#{@prefix}#{heading}" 120: end
# File lib/test/spec/dox.rb, line 114 114: def output_item(item) 115: output_no_nl "#{@prefix}- #{item}" 116: end
# File lib/test/spec/dox.rb, line 109 109: def output_no_nl(something, level=NORMAL) 110: @io.write(something) if (output?(level)) 111: @io.flush 112: end
# File lib/test/spec/dox.rb, line 46 46: def output_result 47: if @disabled > 0 48: disabled = ", #{@disabled} disabled" 49: else 50: disabled = "" 51: end 52: 53: if @empty > 0 54: empty = ", #{@empty} empty" 55: else 56: empty = "" 57: end 58: 59: r = ("%d specifications#{disabled}#{empty} " + 60: "(%d requirements), %d failures") % [ 61: @result.run_count, @result.assertion_count, @result.failure_count] 62: r << ", #{@result.error_count} errors" if @result.error_count > 0 63: output r 64: end
# File lib/test/spec/dox.rb, line 7 7: def setup_mediator 8: @mediator = create_mediator(@suite) 9: end
# File lib/test/spec/dox.rb, line 144 144: def special_test?(name) 145: name =~ /\Atest_spec \{.*?\} (-1 BEFORE|AFTER) ALL\(/ 146: end
# File lib/test/spec/dox.rb, line 25 25: def started(result) 26: @io ||= @output 27: @result = result 28: @context = nil 29: @contexts = [] 30: @disabled = 0 31: @empty = 0 32: indent 0 33: end
# File lib/test/spec/dox.rb, line 97 97: def test_finished(name) 98: return if special_test? name 99: 100: # Did any assertion run? 101: if @assertions == @result.assertion_count && @prevdisabled == @disabled 102: add_fault Test::Spec::Empty.new(@specname) 103: end 104: 105: # Don't let empty contexts clutter up the output. 106: nl unless name =~ /\Adefault_test\(/ 107: end
# File lib/test/spec/dox.rb, line 66 66: def test_started(name) 67: return if special_test? name 68: 69: contextname, @specname = unmangle name 70: return if contextname.nil? || @specname.nil? 71: 72: if @context != contextname 73: @context = contextname 74: 75: @old_contexts = @contexts 76: @contexts = @context.split("\t") 77: 78: common = 0 79: @contexts.zip(@old_contexts) { |a, b| 80: break if a != b 81: common += 1 82: } 83: 84: nl if common == 0 85: 86: @contexts[common..-1].each_with_index { |head, i| 87: indent common + i 88: output_heading head 89: } 90: end 91: 92: @assertions = @result.assertion_count 93: @prevdisabled = @disabled 94: output_item @specname 95: end
# File lib/test/spec/dox.rb, line 122 122: def unmangle(name) 123: if name =~ /\Atest_spec \{(.*?)\} \d+ \[(.*)\]/ 124: contextname = $1 125: specname = $2 126: elsif name =~ /test_(.*?)\((.*)\)$/ 127: specname = $1 128: contextname = $2 129: 130: contextname.gsub!(/^Test\B|\BTest$/, '') 131: specname.gsub!(/_/, ' ') 132: else 133: contextname = specname = nil 134: end 135: 136: [contextname, specname] 137: end