Class: Minitest::SummaryReporter

Inherits:
StatisticsReporter show all
Defined in:
lib/minitest.rb

Overview

A reporter that prints the header, summary, and failure details at the end of the run.

This is added to the top-level CompositeReporter at the start of the run. If you want to change the output of minitest via a plugin, pull this out of the composite and replace it with your own.

Instance Attribute Summary collapse

Attributes inherited from StatisticsReporter

#assertions, #count, #errors, #failures, #results, #skips, #start_time, #total_time, #warnings

Attributes inherited from Reporter

#io, #options

Instance Method Summary collapse

Methods inherited from StatisticsReporter

#initialize, #passed?, #record

Methods inherited from Reporter

#initialize

Methods inherited from AbstractReporter

#initialize, #passed?, #prerecord, #record, #synchronize

Constructor Details

This class inherits a constructor from Minitest::StatisticsReporter

Instance Attribute Details

#old_syncObject

:nodoc:



898
899
900
# File 'lib/minitest.rb', line 898

def old_sync
  @old_sync
end

#syncObject

:nodoc:



897
898
899
# File 'lib/minitest.rb', line 897

def sync
  @sync
end

Instance Method Details

#aggregated_results(io) ⇒ Object

:nodoc:



929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
# File 'lib/minitest.rb', line 929

def aggregated_results io # :nodoc:
  filtered_results = results.dup
  filtered_results.reject!(&:skipped?) unless
    options[:verbose] or options[:show_skips]

  skip = options[:skip] || []

  filtered_results.each_with_index { |result, i|
    next if skip.include? result.result_code

    io.puts "\n%3d) %s" % [i+1, result]
  }
  io.puts
  io
end

#reportObject

:nodoc:



912
913
914
915
916
917
918
919
920
921
922
# File 'lib/minitest.rb', line 912

def report # :nodoc:
  super

  io.sync = self.old_sync

  io.puts unless options[:verbose] # finish the dots
  io.puts
  io.puts statistics
  aggregated_results io
  io.puts summary
end

#startObject

:nodoc:



900
901
902
903
904
905
906
907
908
909
910
# File 'lib/minitest.rb', line 900

def start # :nodoc:
  super

  io.puts "Run options: #{options[:args]}"
  io.puts
  io.puts "# Running:"
  io.puts

  self.sync = io.respond_to? :"sync="
  self.old_sync, io.sync = io.sync, true if self.sync
end

#statisticsObject

:nodoc:



924
925
926
927
# File 'lib/minitest.rb', line 924

def statistics # :nodoc:
  "Finished in %.6fs, %.4f runs/s, %.4f assertions/s." %
    [total_time, count / total_time, assertions / total_time]
end

#summaryObject

:nodoc:



949
950
951
952
953
954
955
956
957
958
959
960
961
962
# File 'lib/minitest.rb', line 949

def summary # :nodoc:
  extra = []

  extra << ", %d warnings" % [warnings] if options[:Werror]

  extra << "\n\nYou have skipped tests. Run with --verbose for details." if
    results.any?(&:skipped?) unless
    options[:verbose]        or
    options[:show_skips]     or
    ENV["MT_NO_SKIP_MSG"]

  "%d runs, %d assertions, %d failures, %d errors, %d skips%s" %
    [count, assertions, failures, errors, skips, extra.join]
end

#to_sObject

:nodoc:



945
946
947
# File 'lib/minitest.rb', line 945

def to_s # :nodoc:
  aggregated_results(StringIO.new("".b)).string
end