Class: TestNotifier::MinitestReporter

Inherits:
Minitest::AbstractReporter
  • Object
show all
Defined in:
lib/test_notifier/runner/minitest.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeMinitestReporter



10
11
12
13
14
15
16
17
# File 'lib/test_notifier/runner/minitest.rb', line 10

def initialize(*)
  super
  @assertions = 0
  @count = 0
  @failures = 0
  @errors = 0
  @pending = 0
end

Instance Attribute Details

#assertionsObject (readonly)

Returns the value of attribute assertions.



8
9
10
# File 'lib/test_notifier/runner/minitest.rb', line 8

def assertions
  @assertions
end

#countObject (readonly)

Returns the value of attribute count.



8
9
10
# File 'lib/test_notifier/runner/minitest.rb', line 8

def count
  @count
end

#errorsObject (readonly)

Returns the value of attribute errors.



8
9
10
# File 'lib/test_notifier/runner/minitest.rb', line 8

def errors
  @errors
end

#failuresObject (readonly)

Returns the value of attribute failures.



8
9
10
# File 'lib/test_notifier/runner/minitest.rb', line 8

def failures
  @failures
end

#pendingObject (readonly)

Returns the value of attribute pending.



8
9
10
# File 'lib/test_notifier/runner/minitest.rb', line 8

def pending
  @pending
end

Instance Method Details

#error?(failure) ⇒ Boolean



45
46
47
# File 'lib/test_notifier/runner/minitest.rb', line 45

def error?(failure)
  failure.is_a?(Minitest::UnexpectedError)
end

#failure?(failure) ⇒ Boolean



41
42
43
# File 'lib/test_notifier/runner/minitest.rb', line 41

def failure?(failure)
  failure.is_a?(Minitest::Assertion) && !flunk?(failure)
end

#flunk?(failure) ⇒ Boolean



36
37
38
39
# File 'lib/test_notifier/runner/minitest.rb', line 36

def flunk?(failure)
  (failure.backtrace_locations || [])
    .any? { it.label == "Minitest::Assertions#flunk" }
end

#prerecordObject



22
23
# File 'lib/test_notifier/runner/minitest.rb', line 22

def prerecord(*)
end

#record(result) ⇒ Object



25
26
27
28
29
30
31
32
33
34
# File 'lib/test_notifier/runner/minitest.rb', line 25

def record(result)
  flunked = result.failures.count { flunk?(it) }

  @count += 1
  @assertions += result.assertions
  @assertions -= flunked if flunked.nonzero?
  @errors += result.failures.count { error?(it) }
  @failures += result.failures.count { failure?(it) }
  @pending += flunked
end

#reportObject



49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/test_notifier/runner/minitest.rb', line 49

def report
  stats = TestNotifier::Stats.new(
    :minitest,
    count:,
    assertions:,
    failures:,
    errors:,
    pending:
  )

  TestNotifier.notify(status: stats.status, message: stats.message)
end

#startObject



19
20
# File 'lib/test_notifier/runner/minitest.rb', line 19

def start
end