Class: Testjour::QueueingExecutor::ResultsFormatter

Inherits:
Object
  • Object
show all
Defined in:
lib/testjour/cucumber_extensions/queueing_executor.rb

Instance Method Summary collapse

Constructor Details

#initialize(step_count) ⇒ ResultsFormatter

Returns a new instance of ResultsFormatter.



15
16
17
18
19
20
21
22
# File 'lib/testjour/cucumber_extensions/queueing_executor.rb', line 15

def initialize(step_count)
  @passed  = 0
  @skipped = 0
  @pending = 0
  @result_uris = []
  @errors  = []
  @progress_bar = ProgressBar.new("0 slaves", step_count)
end

Instance Method Details

#colorerObject



54
55
56
57
58
59
60
# File 'lib/testjour/cucumber_extensions/queueing_executor.rb', line 54

def colorer
  if failed?
    Testjour::Colorer.method(:failed).to_proc
  else
    Testjour::Colorer.method(:passed).to_proc
  end
end

#erase_current_lineObject



70
71
72
# File 'lib/testjour/cucumber_extensions/queueing_executor.rb', line 70

def erase_current_line
  print "\e[K"
end

#failed?Boolean

Returns:

  • (Boolean)


89
90
91
# File 'lib/testjour/cucumber_extensions/queueing_executor.rb', line 89

def failed?
  @errors.any?
end

#finishObject



84
85
86
87
# File 'lib/testjour/cucumber_extensions/queueing_executor.rb', line 84

def finish
  @progress_bar.finish
  print_summary
end

#log_result(uri, dot, message, backtrace) ⇒ Object



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/testjour/cucumber_extensions/queueing_executor.rb', line 35

def log_result(uri, dot, message, backtrace)
  case dot
  when "."
    @passed += 1
  when "F"
    @errors << [message, backtrace]

    erase_current_line
    print Testjour::Colorer.failed("#{@errors.size}) ")
    puts Testjour::Colorer.failed(message)
    puts backtrace
    puts
  when "P"
    @pending += 1
  when "_"
    @skipped += 1
  end
end


74
75
76
77
78
79
80
81
82
# File 'lib/testjour/cucumber_extensions/queueing_executor.rb', line 74

def print_summary
  puts
  puts
  puts Colorer.passed("#{@passed} steps passed")      unless @passed.zero?
  puts Colorer.failed("#{@errors.size} steps failed") unless @errors.empty?
  puts Colorer.skipped("#{@skipped} steps skipped")   unless @skipped.zero?
  puts Colorer.pending("#{@pending} steps pending")   unless @pending.zero?
  puts
end

#result(uri, dot, message, backtrace) ⇒ Object



24
25
26
27
28
29
30
31
32
33
# File 'lib/testjour/cucumber_extensions/queueing_executor.rb', line 24

def result(uri, dot, message, backtrace)
  @result_uris << uri
  @result_uris.uniq!
  
  log_result(uri, dot, message, backtrace)
  
  @progress_bar.colorer = colorer
  @progress_bar.title = title
  @progress_bar.inc
end

#titleObject



62
63
64
65
66
67
68
# File 'lib/testjour/cucumber_extensions/queueing_executor.rb', line 62

def title
  if failed?
    "#{@result_uris.size} slaves, #{@errors.size} failures"
  else
    "#{@result_uris.size} slaves"
  end
end