Sha256: f0e239b84d714c568f3e7cf4994c426f030624eae35763e71446f689f3c91dc3

Contents?: true

Size: 1.73 KB

Versions: 13

Compression:

Stored size: 1.73 KB

Contents

# frozen_string_literal: true

require 'cucumber/formatter/io'
require 'cucumber/formatter/console'
require 'cucumber/formatter/console_counts'
require 'cucumber/formatter/console_issues'
require 'cucumber/core/test/result'
require 'cucumber/formatter/ast_lookup'

module Cucumber
  module Formatter
    # Summary formatter, outputting only feature / scenario titles
    class Summary
      include Io
      include Console

      def initialize(config)
        @config = config
        @io = ensure_io(config.out_stream)
        @ast_lookup = AstLookup.new(config)
        @counts = ConsoleCounts.new(@config)
        @issues = ConsoleIssues.new(@config, @ast_lookup)
        @start_time = Time.now

        @config.on_event :test_case_started do |event|
          print_feature event.test_case
          print_test_case event.test_case
        end

        @config.on_event :test_case_finished do |event|
          print_result event.result
        end

        @config.on_event :test_run_finished do |_event|
          duration = Time.now - @start_time
          @io.puts
          print_statistics(duration, @config, @counts, @issues)
        end
      end

      private

      def gherkin_document(uri)
        @ast_lookup.gherkin_document(uri)
      end

      def print_feature(test_case)
        uri = test_case.location.file
        return if @current_feature_uri == uri
        feature_name = gherkin_document(uri).feature.name
        @io.puts unless @current_feature_uri.nil?
        @io.puts feature_name
        @current_feature_uri = uri
      end

      def print_test_case(test_case)
        @io.print "  #{test_case.name} "
      end

      def print_result(result)
        @io.puts format_string(result, result.to_sym)
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
cucumber-5.1.3 lib/cucumber/formatter/summary.rb
cucumber-5.1.2 lib/cucumber/formatter/summary.rb
cucumber-5.1.1 lib/cucumber/formatter/summary.rb
cucumber-5.1.0 lib/cucumber/formatter/summary.rb
cucumber-5.0.0 lib/cucumber/formatter/summary.rb
cucumber-4.1.0 lib/cucumber/formatter/summary.rb
cucumber-4.0.1 lib/cucumber/formatter/summary.rb
cucumber-4.0.0 lib/cucumber/formatter/summary.rb
cucumber-4.0.0.rc.6 lib/cucumber/formatter/summary.rb
cucumber-4.0.0.rc.5 lib/cucumber/formatter/summary.rb
cucumber-4.0.0.rc.4 lib/cucumber/formatter/summary.rb
cucumber-4.0.0.rc.3 lib/cucumber/formatter/summary.rb
cucumber-4.0.0.rc.2 lib/cucumber/formatter/summary.rb