class RSpec::Core::Formatters::JsonFormatter
Attributes
output_hash[R]
Public Class Methods
new(output)
click to toggle source
Calls superclass method
RSpec::Core::Formatters::BaseFormatter.new
# File lib/rspec/core/formatters/json_formatter.rb, line 12 def initialize(output) super @output_hash = {} end
Public Instance Methods
close()
click to toggle source
# File lib/rspec/core/formatters/json_formatter.rb, line 62 def close output.write @output_hash.to_json output.close if IO === output && output != $stdout end
dump_summary(duration, example_count, failure_count, pending_count)
click to toggle source
Calls superclass method
RSpec::Core::Formatters::BaseFormatter#dump_summary
# File lib/rspec/core/formatters/json_formatter.rb, line 21 def dump_summary(duration, example_count, failure_count, pending_count) super(duration, example_count, failure_count, pending_count) @output_hash[:summary] = { :duration => duration, :example_count => example_count, :failure_count => failure_count, :pending_count => pending_count } @output_hash[:summary_line] = summary_line(example_count, failure_count, pending_count) end
message(message)
click to toggle source
# File lib/rspec/core/formatters/json_formatter.rb, line 17 def message(message) (@output_hash[:messages] ||= []) << message end
stop()
click to toggle source
Calls superclass method
RSpec::Core::Formatters::BaseFormatter#stop
# File lib/rspec/core/formatters/json_formatter.rb, line 39 def stop super @output_hash[:examples] = examples.map do |example| { :description => example.description, :full_description => example.full_description, :status => example.execution_result[:status], # :example_group, # :execution_result, :file_path => example.metadata[:file_path], :line_number => example.metadata[:line_number], }.tap do |hash| if e=example.exception hash[:exception] = { :class => e.class.name, :message => e.message, :backtrace => e.backtrace, } end end end end
summary_line(example_count, failure_count, pending_count)
click to toggle source
# File lib/rspec/core/formatters/json_formatter.rb, line 32 def summary_line(example_count, failure_count, pending_count) summary = pluralize(example_count, "example") summary << ", " << pluralize(failure_count, "failure") summary << ", #{pending_count} pending" if pending_count > 0 summary end