Sha256: dc48eb3b244b0f713d233f81792f74bb4bdb131992361ec8f06c44c31c95c021
Contents?: true
Size: 1.36 KB
Versions: 1
Compression:
Stored size: 1.36 KB
Contents
require 'rspec/core' require 'rspec/core/formatters/base_formatter' require 'json' module ShouldIT module Formatters class RSpecFormatter < ::RSpec::Core::Formatters::BaseFormatter VERSION = '0.0.1' ::RSpec::Core::Formatters.register self, :stop, :close attr_reader :output, :specs def initialize(output) super @specs = {} end def stop(notification) examples = notification.examples.map do |example| map_example(example) end build_output(examples) end def map_example(example) { group: group_for(example.metadata), description: example.metadata[:description], result: result_for(example.metadata) } end def group_for(metadata) metadata[:full_description].gsub(metadata[:description], '').strip end def result_for(metadata) metadata[:execution_result].status.upcase.to_s end def build_output(examples) examples.each do |example| group = @specs[example[:group]] || {} @specs[example[:group]] = group.merge({ example[:description] => example[:result] }) end end def close(_notification) output.write @specs.to_json output.close if IO === output && output != $stdout end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
shouldit-formatters-rspec-0.0.1 | lib/shouldit/formatters/rspec_formatter.rb |