Sha256: 6f1d2109034513f3fcd9b71f445cd7b28f769d29a44c205d55c72b98206426e2

Contents?: true

Size: 1.7 KB

Versions: 3

Compression:

Stored size: 1.7 KB

Contents

require 'cucumber/formatter/console'
require 'cucumber/formatter/io'

module Cucumber
  module Formatter
    # The formatter used for <tt>--format progress</tt>
    class Progress
      include Console
      include Io
      attr_reader :step_mother

      def initialize(step_mother, path_or_io, options)
        @step_mother, @io, @options = step_mother, ensure_io(path_or_io, "progress"), options
      end

      def after_features(features)
        @io.puts
        @io.puts
        print_summary(features)
      end

      def after_step_result(keyword, step_match, multiline_arg, status, exception, source_indent, background)
        progress(status)
        @status = status
      end
      
      def before_outline_table(outline_table)
        @outline_table = outline_table
      end
      
      def after_outline_table(outline_table)
        @outline_table = nil
      end

      def table_cell_value(value, status)
        return unless @outline_table
        status ||= @status
        progress(status) unless table_header_cell?(status)
      end

      private

      def print_summary(features)
        print_steps(:pending)
        print_steps(:failed)
        print_stats(features, @options.custom_profiles)
        print_snippets(@options)
        print_passing_wip(@options)
        print_tag_limit_warnings(features)
      end

      CHARS = {
        :passed    => '.',
        :failed    => 'F',
        :undefined => 'U',
        :pending   => 'P',
        :skipped   => '-'
      }

      def progress(status)
        char = CHARS[status]
        @io.print(format_string(char, status))
        @io.flush
      end

      def table_header_cell?(status)
        status == :skipped_param
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 2 rubygems

Version Path
cucumber-0.6.3 lib/cucumber/formatter/progress.rb
davidtrogers-cucumber-0.6.2 lib/cucumber/formatter/progress.rb
cucumber-0.6.2 lib/cucumber/formatter/progress.rb