class TF::ErrorSummaryOutput

Constants

BLUE
GREEN
RED
RESET
YELLOW

Public Class Methods

argument_matches?(argument) click to toggle source
# File lib/plugins/tf/error_summary_output.rb, line 8
def self.argument_matches? argument
  [:load] if argument == "--dotted"
end
new(output=nil) click to toggle source
# File lib/plugins/tf/error_summary_output.rb, line 12
def initialize output=nil
  @counts={}
  @counts[:commands] = 0
  @counts[:tests] = 0
  @counts[:commands_started] = 0
  @counts[:commands_finished] = 0
  @counts[:tests_success] = 0
  @counts[:tests_failure] = 0
  @counter_id = 0
  @summary = {}
  @output = output || $stdout
end

Public Instance Methods

command_err(err) click to toggle source
# File lib/plugins/tf/error_summary_output.rb, line 80
def command_err err
end
command_out(out) click to toggle source
# File lib/plugins/tf/error_summary_output.rb, line 77
def command_out out
end
end_command(line, status, env) click to toggle source
# File lib/plugins/tf/error_summary_output.rb, line 73
def end_command line, status, env
  @counts[:commands_finished] += 1
end
end_processing() click to toggle source
# File lib/plugins/tf/error_summary_output.rb, line 53
def end_processing
  @output.printf "\n"
  @output.puts status
  @output.puts summary
end
end_test(test) click to toggle source
# File lib/plugins/tf/error_summary_output.rb, line 65
def end_test test
end
start_command(line) click to toggle source
# File lib/plugins/tf/error_summary_output.rb, line 68
def start_command line
  @counts[:commands_started] += 1
  @current_line = line.merge(:counter_id => @counts[:commands_started])
end
start_processing() click to toggle source
# File lib/plugins/tf/error_summary_output.rb, line 25
def start_processing
end
start_test(test, env) click to toggle source
# File lib/plugins/tf/error_summary_output.rb, line 59
def start_test test, env
  @counts[:commands] += test[:commands].size
  tests_counts = test[:commands].map{|line| line[:tests].nil? ? 0 : line[:tests].size }
  @counts[:tests] += tests_counts.empty? ? 0 : tests_counts.inject(&:+)
end
status() click to toggle source
# File lib/plugins/tf/error_summary_output.rb, line 28
def status
  text = "#{BLUE}##### Processed commands #{@counts[:commands_finished]} of #{@counts[:commands]}"
  if @counts[:tests_success] > 0
    text += ", #{GREEN}success tests #{@counts[:tests_success]} of #{@counts[:tests]}"
  end
  if @counts[:tests_failure] > 0
    text += ", #{RED}failure tests #{@counts[:tests_failure]} of #{@counts[:tests]}"
  end
  skipped = @counts[:tests] - @counts[:tests_success] - @counts[:tests_failure]
  if skipped > 0
    text += ", #{YELLOW}skipped tests #{skipped} of #{@counts[:tests]}"
  end
  text += ".#{RESET}"
  text
end
summary() click to toggle source
# File lib/plugins/tf/error_summary_output.rb, line 44
def summary
  @summary.sort{|a,b| ak,_=a ; bk,_=b ; ak <=> bk }.each{|k,v|
    @output.puts "#{YELLOW}$ #{v[:cmd]}#{RESET}"
    v[:failed_tests].each{|t| puts "#{RED}# #{t}#{RESET}" }
  }
  text = ""
  text
end
test_processed(test, status, msg) click to toggle source
# File lib/plugins/tf/error_summary_output.rb, line 83
def test_processed test, status, msg
  @output.printf status ? "." : "F"
  if status
    @counts[:tests_success] += 1
  else
    @counts[:tests_failure] += 1
    @summary[@current_line[:counter_id]] ||= @current_line.merge({:failed_tests=>[]})
    @summary[@current_line[:counter_id]][:failed_tests] << msg
  end
end