Class Test::Unit::UI::SpecDox::TestRunner
In: lib/test/spec/dox.rb
Parent: Test::Unit::UI::Console::TestRunner

Methods

Protected Instance methods

[Source]

    # 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

[Source]

    # 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

[Source]

     # File lib/test/spec/dox.rb, line 139
139:       def indent(depth)
140:         @indent = depth
141:         @prefix = "  " * depth
142:       end

[Source]

     # File lib/test/spec/dox.rb, line 118
118:       def output_heading(heading)
119:         output "#{@prefix}#{heading}"
120:       end

[Source]

     # File lib/test/spec/dox.rb, line 114
114:       def output_item(item)
115:         output_no_nl "#{@prefix}- #{item}"
116:       end

[Source]

     # 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

[Source]

    # 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

[Source]

   # File lib/test/spec/dox.rb, line 7
7:       def setup_mediator
8:         @mediator = create_mediator(@suite)
9:       end

[Source]

     # File lib/test/spec/dox.rb, line 144
144:       def special_test?(name)
145:         name =~ /\Atest_spec \{.*?\} (-1 BEFORE|AFTER) ALL\(/
146:       end

[Source]

    # 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

[Source]

     # 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

[Source]

    # 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

[Source]

     # 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

[Validate]