Class: LemansReport::Reporter
- Inherits:
-
Minitest::AbstractReporter
- Object
- Minitest::AbstractReporter
- LemansReport::Reporter
- Defined in:
- lib/lemans/verifier/assets/lemans_minitest_reporter.rb
Overview
Appends every Minitest result to $LOGS/checks.json. Required by eport-lemans once Minitest is loaded; never load this file directly.
Instance Method Summary collapse
-
#initialize(dir) ⇒ Reporter
constructor
A new instance of Reporter.
-
#passed? ⇒ Boolean
A skip inside the harness-shipped tests is an unverified requirement and fails the run.
- #record(result) ⇒ Object
- #report ⇒ Object
Constructor Details
#initialize(dir) ⇒ Reporter
Returns a new instance of Reporter.
9 10 11 12 13 |
# File 'lib/lemans/verifier/assets/lemans_minitest_reporter.rb', line 9 def initialize(dir) super() @dir = dir @results = [] end |
Instance Method Details
#passed? ⇒ Boolean
A skip inside the harness-shipped tests is an unverified requirement and fails the run. The app's own suite keeps vanilla skip semantics.
33 34 35 |
# File 'lib/lemans/verifier/assets/lemans_minitest_reporter.rb', line 33 def passed? @results.none? { |result| graded?(result) && result.skipped? } end |
#record(result) ⇒ Object
15 16 17 |
# File 'lib/lemans/verifier/assets/lemans_minitest_reporter.rb', line 15 def record(result) @results << result end |
#report ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/lemans/verifier/assets/lemans_minitest_reporter.rb', line 19 def report graded = @results.select { graded?(_1) } prior = existing.fetch("checks", {}) return if graded.empty? && prior.empty? checks = prior.merge(graded.to_h { [name(_1), status(_1)] }).sort.to_h File.write( File.join(@dir, "checks.json"), JSON.pretty_generate(checks: checks, failures: checks.reject { |_, status| status == "pass" }.keys) ) end |