Class: Minitest::JsonReporter
- Inherits:
-
AbstractReporter
- Object
- AbstractReporter
- Minitest::JsonReporter
- Defined in:
- lib/minitest/json_reporter_plugin.rb
Instance Attribute Summary collapse
-
#assertions ⇒ Object
Returns the value of attribute assertions.
-
#failures ⇒ Object
Returns the value of attribute failures.
-
#io ⇒ Object
Returns the value of attribute io.
-
#results ⇒ Object
Returns the value of attribute results.
Instance Method Summary collapse
-
#initialize(options) ⇒ JsonReporter
constructor
A new instance of JsonReporter.
- #record(result) ⇒ Object
- #report ⇒ Object
Constructor Details
#initialize(options) ⇒ JsonReporter
Returns a new instance of JsonReporter.
21 22 23 24 25 26 |
# File 'lib/minitest/json_reporter_plugin.rb', line 21 def initialize() @io = [:io] @results = [] @assertions = 0 @failures = 0 end |
Instance Attribute Details
#assertions ⇒ Object
Returns the value of attribute assertions.
19 20 21 |
# File 'lib/minitest/json_reporter_plugin.rb', line 19 def assertions @assertions end |
#failures ⇒ Object
Returns the value of attribute failures.
19 20 21 |
# File 'lib/minitest/json_reporter_plugin.rb', line 19 def failures @failures end |
#io ⇒ Object
Returns the value of attribute io.
19 20 21 |
# File 'lib/minitest/json_reporter_plugin.rb', line 19 def io @io end |
#results ⇒ Object
Returns the value of attribute results.
19 20 21 |
# File 'lib/minitest/json_reporter_plugin.rb', line 19 def results @results end |
Instance Method Details
#record(result) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/minitest/json_reporter_plugin.rb', line 28 def record(result) self.assertions += result.assertions self.failures += result.failures.size line = result.source_location[-1] failure = result.failures[0] if failure && !failure.is_a?(Minitest::UnexpectedError) # "/Users/marcusheng/projects/rails/sample_project/test/models/user_test.rb:11" line = failure.location.split("/")[-1].split(":")[-1] end results << { name: result.name, status: result.passed? ? "PASS" : "FAIL", failures: failure ? failure.error.to_s : "", line: line.to_i }.to_json end |
#report ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/minitest/json_reporter_plugin.rb', line 48 def report io.write( JSON.dump( { examples: results, statistics: { assertions: assertions, failures: failures } } ) ) # results.each { |result| io.write "\n#{result}" } end |