class Minitest::JsonApi::Reporter
Attributes
addr[RW]
all_results[RW]
apikeyname[RW]
apikeyvalue[RW]
pretty[RW]
Public Class Methods
new(options = {})
click to toggle source
Calls superclass method
# File lib/minitest/jsonapi_plugin.rb, line 10 def initialize(options = {}) super self.all_results = [] self.addr = options[:addr] self.apikeyname = options[:apikeyname] self.apikeyvalue = options[:apikeyvalue] self.pretty = options[:pretty] || false end
Public Instance Methods
record(result)
click to toggle source
Calls superclass method
# File lib/minitest/jsonapi_plugin.rb, line 21 def record(result) super all_results << result end
report()
click to toggle source
Calls superclass method
# File lib/minitest/jsonapi_plugin.rb, line 26 def report super assertions = 0 skips = 0 errors = 0 fails = 0 passes = 0 results = all_results.collect do |result| status = case result.failure when Skip skips += 1 :skip when UnexpectedError errors += 1 :error when Assertion fails += 1 :fail else passes += 1 :pass end assertions += result.assertions result_hash = { name: result.name, status: status, time: result.time, assertions: result.assertions, file: nil, line: nil } if result.failure result_hash.merge!({ file: result.source_location[0], line: result.source_location[1] }) end result_hash end summary = { tests: all_results.count, assertions: assertions, passes: passes, fails: fails, errors: errors, skips: skips } full_result = { summary: summary, results: results } if addr.to_s.empty? if self.pretty io[:io].write(JSON.pretty_generate(full_result)) else io[:io].write(JSON.dump(full_result)) end else uri = URI.parse(self.addr) header = {'Content-Type': 'text/json'} if self.apikeyname and self.apikeyvalue header[self.apikeyname] = apikeyvalue end http = Net::HTTP.new(uri.host, uri.port) request = Net::HTTP::Post.new(uri.request_uri, header) request.body = full_result.to_json http.use_ssl = true if uri.scheme == 'https' begin http.request request rescue Exception => e puts "ERROR - #{e.message}" end end end