class RSpec::Core::Formatters::JsonFormatter
@private
Attributes
Public Class Methods
Calls superclass method
RSpec::Core::Formatters::BaseFormatter::new
# File rspec-core/lib/rspec/core/formatters/json_formatter.rb, line 13 def initialize(output) super @output_hash = { :version => RSpec::Core::Version::STRING } end
Public Instance Methods
# File rspec-core/lib/rspec/core/formatters/json_formatter.rb, line 56 def close(_notification) output.write @output_hash.to_json end
# File rspec-core/lib/rspec/core/formatters/json_formatter.rb, line 60 def dump_profile(profile) @output_hash[:profile] = {} dump_profile_slowest_examples(profile) dump_profile_slowest_example_groups(profile) end
@api private
# File rspec-core/lib/rspec/core/formatters/json_formatter.rb, line 79 def dump_profile_slowest_example_groups(profile) @output_hash[:profile] ||= {} @output_hash[:profile][:groups] = profile.slowest_groups.map do |loc, hash| hash.update(:location => loc) end end
@api private
# File rspec-core/lib/rspec/core/formatters/json_formatter.rb, line 67 def dump_profile_slowest_examples(profile) @output_hash[:profile] = {} @output_hash[:profile][:examples] = profile.slowest_examples.map do |example| format_example(example).tap do |hash| hash[:run_time] = example.execution_result.run_time end end @output_hash[:profile][:slowest] = profile.slow_duration @output_hash[:profile][:total] = profile.duration end
# File rspec-core/lib/rspec/core/formatters/json_formatter.rb, line 24 def dump_summary(summary) @output_hash[:summary] = { :duration => summary.duration, :example_count => summary.example_count, :failure_count => summary.failure_count, :pending_count => summary.pending_count, :errors_outside_of_examples_count => summary.errors_outside_of_examples_count } @output_hash[:summary_line] = summary.totals_line end
# File rspec-core/lib/rspec/core/formatters/json_formatter.rb, line 20 def message(notification) (@output_hash[:messages] ||= []) << notification.message end
# File rspec-core/lib/rspec/core/formatters/json_formatter.rb, line 51 def seed(notification) return unless notification.seed_used? @output_hash[:seed] = notification.seed end
# File rspec-core/lib/rspec/core/formatters/json_formatter.rb, line 35 def stop(group_notification) @output_hash[:examples] = group_notification.notifications.map do |notification| format_example(notification.example).tap do |hash| e = notification.example.exception if e hash[:exception] = { :class => e.class.name, :message => e.message, :backtrace => notification.formatted_backtrace, } end end end end