class Cucumber::Formatter::Summary
Summary formatter, outputting feature / scenario titles plus failure details
Public Class Methods
Source
# File lib/cucumber/formatter/summary.rb, line 18 def initialize(config) @config = config @io = ensure_io(config.out_stream, config.error_stream) @ast_lookup = AstLookup.new(config) @counts = ConsoleCounts.new(@config) @issues = ConsoleIssues.new(@config, @ast_lookup) @failed_results = [] @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_step_finished do |event| collect_failed_result(event.test_step, event.result) end @config.on_event :test_run_finished do |_event| duration = Time.now - @start_time @io.puts print_elements(@failed_results, :failed, 'steps') print_statistics(duration, @config, @counts, @issues) end end
Private Instance Methods
Source
# File lib/cucumber/formatter/summary.rb, line 72 def collect_failed_result(test_step, result) return if test_step.hook? result = result.with_filtered_backtrace(Cucumber::Formatter::BacktraceFilter) @failed_results << result if result.failed? end
Source
# File lib/cucumber/formatter/summary.rb, line 50 def gherkin_document(uri) @ast_lookup.gherkin_document(uri) end
Source
# File lib/cucumber/formatter/summary.rb, line 54 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
Source
# File lib/cucumber/formatter/summary.rb, line 68 def print_result(result) @io.puts format_string(result, result.to_sym) end
Source
# File lib/cucumber/formatter/summary.rb, line 64 def print_test_case(test_case) @io.print " #{test_case.name} " end