Class: Minitest::StatisticsReporter

Inherits:
Reporter show all
Defined in:
opal/stdlib/minitest.rb

Overview

A reporter that gathers statistics about a test run. Does not do any IO because meant to be used as a parent class for a reporter that does.

If you want to create an entirely different type of output (eg, CI, HTML, etc), this is the place to start.

Direct Known Subclasses

SummaryReporter

Instance Attribute Summary collapse

Attributes inherited from Reporter

#io, #options

Instance Method Summary collapse

Constructor Details

#initialize(io = $stdout, options = {}) ⇒ StatisticsReporter

:startdoc:



487
488
489
490
491
492
493
494
495
496
497
498
# File 'opal/stdlib/minitest.rb', line 487

def initialize io = $stdout, options = {} # :nodoc:
  super

  self.assertions = 0
  self.count      = 0
  self.results    = []
  self.start_time = nil
  self.total_time = nil
  self.failures   = nil
  self.errors     = nil
  self.skips      = nil
end

Instance Attribute Details

#assertionsObject

:stopdoc:



477
478
479
# File 'opal/stdlib/minitest.rb', line 477

def assertions
  @assertions
end

#countObject

Returns the value of attribute count



478
479
480
# File 'opal/stdlib/minitest.rb', line 478

def count
  @count
end

#errorsObject

Returns the value of attribute errors



483
484
485
# File 'opal/stdlib/minitest.rb', line 483

def errors
  @errors
end

#failuresObject

Returns the value of attribute failures



482
483
484
# File 'opal/stdlib/minitest.rb', line 482

def failures
  @failures
end

#resultsObject

Returns the value of attribute results



479
480
481
# File 'opal/stdlib/minitest.rb', line 479

def results
  @results
end

#skipsObject

Returns the value of attribute skips



484
485
486
# File 'opal/stdlib/minitest.rb', line 484

def skips
  @skips
end

#start_timeObject

Returns the value of attribute start_time



480
481
482
# File 'opal/stdlib/minitest.rb', line 480

def start_time
  @start_time
end

#total_timeObject

Returns the value of attribute total_time



481
482
483
# File 'opal/stdlib/minitest.rb', line 481

def total_time
  @total_time
end

Instance Method Details

#passed?Boolean

:nodoc:

Returns:



500
501
502
# File 'opal/stdlib/minitest.rb', line 500

def passed? # :nodoc:
  results.all?(&:skipped?)
end

#record(result) ⇒ Object

:nodoc:



508
509
510
511
512
513
# File 'opal/stdlib/minitest.rb', line 508

def record result # :nodoc:
  self.count += 1
  self.assertions += result.assertions

  results << result if not result.passed? or result.skipped?
end

#reportObject

:nodoc:



515
516
517
518
519
520
521
522
523
# File 'opal/stdlib/minitest.rb', line 515

def report # :nodoc:
  aggregate = results.group_by { |r| r.failure.class }
  aggregate.default = [] # dumb. group_by should provide this

  self.total_time = Time.now - start_time
  self.failures   = aggregate[Assertion].size
  self.errors     = aggregate[UnexpectedError].size
  self.skips      = aggregate[Skip].size
end

#startObject

:nodoc:



504
505
506
# File 'opal/stdlib/minitest.rb', line 504

def start # :nodoc:
  self.start_time = Time.now
end