class Minitest::Queue::GrindRecorder

Attributes

failure_formatter[RW]
build[R]
test_count[RW]

Public Class Methods

counters() click to toggle source
# File lib/minitest/queue/grind_recorder.rb, line 8
def self.counters
  @counters ||= {
    'failures' => 0,
    'errors' => 0,
    'skips' => 0,
    'test_count' => 0
  }
end
new(build:, **options) click to toggle source
Calls superclass method
# File lib/minitest/queue/grind_recorder.rb, line 22
def initialize(build:, **options)
  super(options)
  @build = build
end

Public Instance Methods

record(test) click to toggle source
# File lib/minitest/queue/grind_recorder.rb, line 27
def record(test)
  increment_counter(test)
  record_test(test)
end

Private Instance Methods

dump(test) click to toggle source
# File lib/minitest/queue/grind_recorder.rb, line 61
def dump(test)
  ErrorReport.new(self.class.failure_formatter.new(test).to_h).dump
end
increment_counter(test) click to toggle source
# File lib/minitest/queue/grind_recorder.rb, line 43
def increment_counter(test)
  if test.skipped?
    self.class.counters['skips'] += 1
  elsif test.error?
    self.class.counters['errors'] += 1
  elsif test.failure
    self.class.counters['failures'] += 1
  end
  self.class.counters['test_count'] += 1

  key = "count##{test.klass}##{test.name}"

  unless self.class.counters.key?(key)
    self.class.counters[key] = 0
  end
  self.class.counters[key] += 1
end
record_test(test) click to toggle source
# File lib/minitest/queue/grind_recorder.rb, line 34
def record_test(test)
  stats = self.class.counters
  if (test.failure || test.error?) && !test.skipped?
    build.record_error(dump(test), stats: stats)
  else
    build.record_success(stats: stats)
  end
end