123456789_123456789_123456789_123456789_123456789_

Class: RSpec::Core::Formatters::BisectProgressFormatter Private

Do not use. This class is for internal use only.
Relationships & Source Files
Extension / Inclusion / Inheritance Descendants
Subclasses:
RSpec::Core::Formatters::BisectDebugFormatter
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
Instance Chain:
Inherits: RSpec::Core::Formatters::BaseTextFormatter
Defined in: rspec-core/lib/rspec/core/formatters/bisect_progress_formatter.rb

Overview

Produces progress output while bisecting.

Class Method Summary

Instance Attribute Summary

Instance Method Summary

BaseTextFormatter - Inherited

#close

Invoked at the end of a suite run.

#dump_failures

Dumps detailed information about each example failure.

#dump_pending,
#dump_summary

This method is invoked after the dumping of examples and failures.

#message

Used by the reporter to send messages to the output stream.

#seed

BaseFormatter - Inherited

Instance Method Details

#bisect_aborted(notification)

[ GitHub ]

  
# File 'rspec-core/lib/rspec/core/formatters/bisect_progress_formatter.rb', line 89

def bisect_aborted(notification)
  output.puts "\n\nBisect aborted!"
  output.puts "\nThe most minimal reproduction command discovered so far is:\n  #{notification.repro}"
end

#bisect_complete(notification)

[ GitHub ]

  
# File 'rspec-core/lib/rspec/core/formatters/bisect_progress_formatter.rb', line 74

def bisect_complete(notification)
  output.puts "\nBisect complete! Reduced necessary non-failing examples " \
              "from #{notification.original_non_failing_count} to " \
              "#{notification.remaining_count} in " \
              "#{Helpers.format_duration(notification.duration)}."
end

#bisect_dependency_check_failed(_notification)

[ GitHub ]

  
# File 'rspec-core/lib/rspec/core/formatters/bisect_progress_formatter.rb', line 36

def bisect_dependency_check_failed(_notification)
  output.puts " failure(s) do not require any non-failures to run first"

  if @bisect_runner == :fork
    output.puts
    output.puts "=" * 80
    output.puts "NOTE: this bisect run used `config.bisect_runner = :fork`, which generally"
    output.puts "provides significantly faster bisection runs than the old shell-based runner,"
    output.puts "but may inaccurately report that no non-failures are required. If this result"
    output.puts "is unexpected, consider setting `config.bisect_runner = :shell` and trying again."
    output.puts "=" * 80
  end
end

#bisect_dependency_check_passed(_notification)

[ GitHub ]

  
# File 'rspec-core/lib/rspec/core/formatters/bisect_progress_formatter.rb', line 32

def bisect_dependency_check_passed(_notification)
  output.puts " failure appears to be order-dependent"
end

#bisect_dependency_check_started(_notification)

[ GitHub ]

  
# File 'rspec-core/lib/rspec/core/formatters/bisect_progress_formatter.rb', line 28

def bisect_dependency_check_started(_notification)
  output.print "Checking that failure(s) are order-dependent.."
end

#bisect_failed(notification)

[ GitHub ]

  
# File 'rspec-core/lib/rspec/core/formatters/bisect_progress_formatter.rb', line 85

def bisect_failed(notification)
  output.puts "\nBisect failed! #{notification.failure_explanation}"
end

#bisect_individual_run_complete(_)

[ GitHub ]

  
# File 'rspec-core/lib/rspec/core/formatters/bisect_progress_formatter.rb', line 70

def bisect_individual_run_complete(_)
  output.print '.'
end

#bisect_original_run_complete(notification)

[ GitHub ]

  
# File 'rspec-core/lib/rspec/core/formatters/bisect_progress_formatter.rb', line 20

def bisect_original_run_complete(notification)
  failures     = Helpers.pluralize(notification.failed_example_ids.size, "failing example")
  non_failures = Helpers.pluralize(notification.non_failing_example_ids.size, "non-failing example")

  output.puts " (#{Helpers.format_duration(notification.duration)})"
  output.puts "Starting bisect with #{failures} and #{non_failures}."
end

#bisect_repro_command(notification)

[ GitHub ]

  
# File 'rspec-core/lib/rspec/core/formatters/bisect_progress_formatter.rb', line 81

def bisect_repro_command(notification)
  output.puts "\nThe minimal reproduction command is:\n  #{notification.repro}"
end

#bisect_round_detected_multiple_culprits(notification)

[ GitHub ]

  
# File 'rspec-core/lib/rspec/core/formatters/bisect_progress_formatter.rb', line 65

def bisect_round_detected_multiple_culprits(notification)
  output.print " multiple culprits detected - splitting candidates"
  output.print " (#{Helpers.format_duration(notification.duration)})"
end

#bisect_round_ignoring_ids(notification)

[ GitHub ]

  
# File 'rspec-core/lib/rspec/core/formatters/bisect_progress_formatter.rb', line 58

def bisect_round_ignoring_ids(notification)
  range_desc = notification.ignore_range.description

  output.print " ignoring #{range_desc}"
  output.print " (#{Helpers.format_duration(notification.duration)})"
end

#bisect_round_started(notification, include_trailing_space = true)

[ GitHub ]

  
# File 'rspec-core/lib/rspec/core/formatters/bisect_progress_formatter.rb', line 50

def bisect_round_started(notification, include_trailing_space=true)
  @round_count += 1
  range_desc = notification.candidate_range.description

  output.print "\nRound #{@round_count}: bisecting over non-failing #{range_desc}"
  output.print " " if include_trailing_space
end

#bisect_started_message(notification) (private)

[ GitHub ]

  
# File 'rspec-core/lib/rspec/core/formatters/bisect_progress_formatter.rb', line 96

def bisect_started_message(notification)
  options = notification.original_cli_args.join(' ')
  "Bisect started using options: #{options.inspect}"
end

#bisect_starting(notification)

[ GitHub ]

  
# File 'rspec-core/lib/rspec/core/formatters/bisect_progress_formatter.rb', line 14

def bisect_starting(notification)
  @round_count = 0
  output.puts bisect_started_message(notification)
  output.print "Running suite to find failures..."
end