Sha256: 9c2f7711e0277920893855039403fce873e1b2dba4bc788abc6c1c3331c97827

Contents?: true

Size: 1.6 KB

Versions: 15

Compression:

Stored size: 1.6 KB

Contents

module Specjour
  module Rspec
    class FinalReport
      attr_reader :duration, :example_count, :failure_count, :pending_count, :pending_examples, :failing_examples

      def initialize
        @duration = 0.0
        @example_count = 0
        @failure_count = 0
        @pending_count = 0
        @pending_examples = []
        @failing_examples = []
      end

      def add(stats)
        stats.each do |key, value|
          if key == :duration
            @duration = value.to_f if duration < value.to_f
          else
            increment(key, value)
          end
        end
      end

      def exit_status
        failing_examples.empty?
      end

      def increment(key, value)
        current = instance_variable_get("@#{key}")
        instance_variable_set("@#{key}", current + value)
      end

      def formatter_options
        @formatter_options ||= OpenStruct.new(
          :colour   => true,
          :autospec => false,
          :dry_run  => false
        )
      end

      def formatter
        @formatter ||= begin
          f = Spec::Runner::Formatter::BaseTextFormatter.new(formatter_options, $stdout)
          f.instance_variable_set(:@pending_examples, pending_examples)
          f
        end
      end

      def summarize
        if example_count > 0
          formatter.dump_pending
          dump_failures
          formatter.dump_summary(duration, example_count, failure_count, pending_count)
        end
      end

      def dump_failures
        failing_examples.each_with_index do |failure, index|
          formatter.dump_failure index + 1, failure
        end
      end
    end
  end
end

Version data entries

15 entries across 15 versions & 3 rubygems

Version Path
specjour-0.3.1 lib/specjour/rspec/final_report.rb
specjour-0.3.0 lib/specjour/rspec/final_report.rb
specjour-0.3.0.rc8 lib/specjour/rspec/final_report.rb
specjour-0.3.0.rc7 lib/specjour/rspec/final_report.rb
specjour-0.3.0.rc6 lib/specjour/rspec/final_report.rb
specjour-0.3.0.rc5 lib/specjour/rspec/final_report.rb
specjour-0.3.0.rc4 lib/specjour/rspec/final_report.rb
specjour-0.3.0.rc3 lib/specjour/rspec/final_report.rb
specjour-0.3.0.rc2 lib/specjour/rspec/final_report.rb
specjour-0.3.0.rc1 lib/specjour/rspec/final_report.rb
relex-specjour-0.2.7 lib/specjour/rspec/final_report.rb
JonathanTron-specjour-0.2.5.1 lib/specjour/rspec/final_report.rb
relex-specjour-0.2.6 lib/specjour/rspec/final_report.rb
specjour-0.2.5 lib/specjour/rspec/final_report.rb
specjour-0.2.4 lib/specjour/rspec/final_report.rb