123456789_123456789_123456789_123456789_123456789_

Class: Rails::TestUnitReporter

Relationships & Source Files
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
self, Minitest::StatisticsReporter
Instance Chain:
self, Minitest::StatisticsReporter
Inherits: Minitest::StatisticsReporter
  • ::Object
Defined in: railties/lib/rails/test_unit/reporter.rb

Constant Summary

Class Attribute Summary

Instance Attribute Summary

Instance Method Summary

Class Attribute Details

.app_root (rw)

[ GitHub ]

  
# File 'railties/lib/rails/test_unit/reporter.rb', line 8

class_attribute :app_root

.app_root?Boolean (rw)

[ GitHub ]

  
# File 'railties/lib/rails/test_unit/reporter.rb', line 8

class_attribute :app_root

.executable (rw)

[ GitHub ]

  
# File 'railties/lib/rails/test_unit/reporter.rb', line 9

class_attribute :executable, default: "bin/rails test"

.executable?Boolean (rw)

[ GitHub ]

  
# File 'railties/lib/rails/test_unit/reporter.rb', line 9

class_attribute :executable, default: "bin/rails test"

Instance Attribute Details

#app_root (rw, private)

[ GitHub ]

  
# File 'railties/lib/rails/test_unit/reporter.rb', line 86

class_attribute :app_root

#app_root= (rw)

[ GitHub ]

  
# File 'railties/lib/rails/test_unit/reporter.rb', line 8

class_attribute :app_root

#app_root?Boolean (rw)

[ GitHub ]

  
# File 'railties/lib/rails/test_unit/reporter.rb', line 8

class_attribute :app_root

#colored_output?Boolean (readonly, private)

[ GitHub ]

  
# File 'railties/lib/rails/test_unit/reporter.rb', line 95

def colored_output?
  options[:color] && io.respond_to?(:tty?) && io.tty?
end

#executable (rw)

[ GitHub ]

  
# File 'railties/lib/rails/test_unit/reporter.rb', line 9

class_attribute :executable, default: "bin/rails test"

#executable?Boolean (rw)

[ GitHub ]

  
# File 'railties/lib/rails/test_unit/reporter.rb', line 9

class_attribute :executable, default: "bin/rails test"

#fail_fast?Boolean (readonly, private)

[ GitHub ]

  
# File 'railties/lib/rails/test_unit/reporter.rb', line 67

def fail_fast?
  options[:fail_fast]
end

#output_inline?Boolean (readonly, private)

[ GitHub ]

  
# File 'railties/lib/rails/test_unit/reporter.rb', line 63

def output_inline?
  options[:output_inline]
end

Instance Method Details

#aggregated_results

This method is for internal use only.
[ GitHub ]

  
# File 'railties/lib/rails/test_unit/reporter.rb', line 42

def aggregated_results # :nodoc:
  filtered_results.map { |result| format_rerun_snippet(result) }.join "\n"
end

#color_output(string, by:) (private)

[ GitHub ]

  
# File 'railties/lib/rails/test_unit/reporter.rb', line 107

def color_output(string, by:)
  if colored_output?
    "\e[#{COLOR_BY_RESULT_CODE[by.result_code]}m#{string}\e[0m"
  else
    string
  end
end

#filtered_results

[ GitHub ]

  
# File 'railties/lib/rails/test_unit/reporter.rb', line 46

def filtered_results
  if options[:verbose]
    results
  else
    results.reject(&:skipped?)
  end
end

#format_line(result) (private)

[ GitHub ]

  
# File 'railties/lib/rails/test_unit/reporter.rb', line 71

def format_line(result)
  klass = result.respond_to?(:klass) ? result.klass : result.class
  "%s#%s = %.2f s = %s" % [klass, result.name, result.time, result.result_code]
end

#format_rerun_snippet(result) (private)

[ GitHub ]

  
# File 'railties/lib/rails/test_unit/reporter.rb', line 76

def format_rerun_snippet(result)
  location, line = if result.respond_to?(:source_location)
    result.source_location
  else
    result.method(result.name).source_location
  end

  "#{executable} #{relative_path_for(location)}:#{line}"
end

#record(result)

[ GitHub ]

  
# File 'railties/lib/rails/test_unit/reporter.rb', line 11

def record(result)
  super

  if options[:verbose]
    io.puts color_output(format_line(result), by: result)
  else
    io.print color_output(result.result_code, by: result)
  end

  if output_inline? && result.failure && (!result.skipped? || options[:verbose])
    io.puts
    io.puts
    io.puts color_output(result, by: result)
    io.puts
    io.puts format_rerun_snippet(result)
    io.puts
  end

  if fail_fast? && result.failure && !result.skipped?
    raise Interrupt
  end
end

#relative_path_for(file)

[ GitHub ]

  
# File 'railties/lib/rails/test_unit/reporter.rb', line 54

def relative_path_for(file)
  if app_root
    file.sub(/^#{app_root}\/?/, "")
  else
    file
  end
end

#report

[ GitHub ]

  
# File 'railties/lib/rails/test_unit/reporter.rb', line 34

def report
  return if output_inline? || filtered_results.empty?
  io.puts
  io.puts "Failed tests:"
  io.puts
  io.puts aggregated_results
end