class RuboCop::RSpec::ParallelFormatter
needed for outputting after the parallel run completes.
It also adds metadata to the output in order to more easily find the text
will be surfaced by test-queue.
removes much of the noise from RSpec so that only the important information
RSpec formatter for use with running ‘rake spec` in parallel. This formatter
def colorize_summary(summary)
def colorize_summary(summary) totals = totals(summary) if summary.failure_count.positive? || summary.errors_outside_of_examples_count.positive? colorizer.wrap(totals, ::RSpec.configuration.failure_color) else colorizer.wrap(totals, ::RSpec.configuration.success_color) end end
def colorizer
def colorizer @colorizer ||= ::RSpec::Core::Formatters::ConsoleCodes end
def dump_failures(notification)
output goes where in the final parallelized output, and should not be
The BEGIN/END comments are used by `spec_runner.rake` to determine what
def dump_failures(notification) return if notification.failure_notifications.empty? output.puts '# FAILURES BEGIN' notification.failure_notifications.each do |failure| output.puts failure.fully_formatted('*', colorizer) end output.puts output.puts '# FAILURES END' end
def dump_pending(*); end
def dump_pending(*); end
def dump_summary(summary)
def dump_summary(summary) output_summary(summary) output_rerun_commands(summary) end
def output_rerun_commands(summary)
output goes where in the final parallelized output, and should not be
The BEGIN/END comments are used by `spec_runner.rake` to determine what
def output_rerun_commands(summary) output.puts '# RERUN BEGIN' output.puts summary.colorized_rerun_commands.lines[3..].join output.puts '# RERUN END' end
def output_summary(summary)
output goes where in the final parallelized output, and should not be
The BEGIN/END comments are used by `spec_runner.rake` to determine what
def output_summary(summary) output.puts '# SUMMARY BEGIN' output.puts colorize_summary(summary) output.puts '# SUMMARY END' end
def pluralize(*args)
def pluralize(*args) ::RSpec::Core::Formatters::Helpers.pluralize(*args) end
def totals(summary)
def totals(summary) output = pluralize(summary.example_count, 'example') output += ", #{summary.pending_count} pending" if summary.pending_count.positive? output += ", #{pluralize(summary.failure_count, 'failure')}" if summary.errors_outside_of_examples_count.positive? error_count = pluralize(summary.errors_outside_of_examples_count, 'error') output += ", #{error_count} occurred outside of examples" end output end