Class: FailFastRunner
- Inherits:
-
Test::Unit::UI::Console::TestRunner
- Object
- Test::Unit::UI::Console::TestRunner
- FailFastRunner
- Defined in:
- lib/test/unit/runner/failfast.rb
Instance Method Summary collapse
- #add_fault(fault) ⇒ Object
-
#add_progress(i, char, priority = 0) ⇒ Object
Adds a char to the progress bar.
- #char_fault(fault) ⇒ Object
- #char_success ⇒ Object
- #finished(elapsed_time) ⇒ Object
-
#initialize(suite, options = {}) ⇒ FailFastRunner
constructor
A new instance of FailFastRunner.
- #output_progress(mark = nil, color = nil) ⇒ Object
- #output_started ⇒ Object
- #output_status(str) ⇒ Object
- #status_indicator ⇒ Object
- #test_finished(name) ⇒ Object
Constructor Details
#initialize(suite, options = {}) ⇒ FailFastRunner
Returns a new instance of FailFastRunner.
5 6 7 8 9 10 11 |
# File 'lib/test/unit/runner/failfast.rb', line 5 def initialize(suite, ={}) @finished = [] = 50 @status = Hash.new { |h, k| h[k] = 0 } = (0...).map { |i| " " } super end |
Instance Method Details
#add_fault(fault) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/test/unit/runner/failfast.rb', line 13 def add_fault(fault) @faults << fault output "\r" + (" " * 80) + "\r" output("%3d) %s" % [@faults.length, fault.long_display]) output("--") nl @already_outputted = true add_progress @finished.size, char_fault(fault), 1 @status[fault.single_character_display] += 1 output_progress end |
#add_progress(i, char, priority = 0) ⇒ Object
Adds a char to the progress bar.
52 53 54 55 56 57 58 59 60 |
# File 'lib/test/unit/runner/failfast.rb', line 52 def add_progress(i, char, priority=0) first_index = ((i-1) * / @suite.size).to_i last_index = (i * / @suite.size).to_i # Don't override E's! (first_index..last_index).each do |index| [index] = char unless [index] != " " && priority == 0 end end |
#char_fault(fault) ⇒ Object
40 41 42 43 44 45 |
# File 'lib/test/unit/runner/failfast.rb', line 40 def char_fault(fault) char = fault.single_character_display color = fault_color(fault) reset = @reset_color.escape_sequence char = "%s%s%s" % [ color.escape_sequence, char, reset ] end |
#char_success ⇒ Object
47 48 49 |
# File 'lib/test/unit/runner/failfast.rb', line 47 def char_success "\033[0;43m.\033[0m" end |
#finished(elapsed_time) ⇒ Object
27 28 29 30 31 32 |
# File 'lib/test/unit/runner/failfast.rb', line 27 def finished(elapsed_time) nl output("Finished in #{elapsed_time} seconds.") nl output(@result) end |
#output_progress(mark = nil, color = nil) ⇒ Object
73 74 75 76 77 78 |
# File 'lib/test/unit/runner/failfast.rb', line 73 def output_progress(mark=nil, color=nil) reset = @reset_color.escape_sequence perc = [100, @finished.size * 100 / @suite.size].min output_status "%3i%% |%s| %3i of %i%s" % [ perc, .join(""), @finished.size, @suite.size, status_indicator ] end |
#output_started ⇒ Object
62 63 64 65 |
# File 'lib/test/unit/runner/failfast.rb', line 62 def output_started output("Started") nl end |
#output_status(str) ⇒ Object
80 81 82 |
# File 'lib/test/unit/runner/failfast.rb', line 80 def output_status(str) print "\r#{str}" end |
#status_indicator ⇒ Object
67 68 69 70 71 |
# File 'lib/test/unit/runner/failfast.rb', line 67 def status_indicator status = @status.map { |char, i| "#{i}#{char}" }.join(" ") status = " \033[0;31m[#{status}]\033[0m" unless status.empty? status end |
#test_finished(name) ⇒ Object
34 35 36 37 38 |
# File 'lib/test/unit/runner/failfast.rb', line 34 def test_finished(name) @finished << name add_progress @finished.size, char_success super end |