Class: RSpec::HalfFull

Inherits:
Core::Formatters::BaseTextFormatter
  • Object
show all
Defined in:
lib/rspec/half_full.rb

Instance Method Summary collapse

Constructor Details

#initialize(io) ⇒ HalfFull

Returns a new instance of HalfFull.



6
7
8
9
# File 'lib/rspec/half_full.rb', line 6

def initialize(io)
  super(io)
  RSpec.configuration.failure_color = :green
end

Instance Method Details

#dump_commands_to_rerun_failed_examplesObject



43
44
45
46
47
48
49
50
51
52
# File 'lib/rspec/half_full.rb', line 43

def dump_commands_to_rerun_failed_examples
  return if failed_examples.empty?
  output.puts
  output.puts("Rerun on next step to success:")
  output.puts

  failed_examples.each do |example|
    output.puts(failure_color("rspec #{RSpec::Core::Metadata::relative_path(example.location)}") + " " + detail_color("# #{example.full_description}"))
  end
end

#dump_failure_info(example) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
# File 'lib/rspec/half_full.rb', line 31

def dump_failure_info(example)
  exception = example.execution_result.exception
  exception_class_name = exception_class_name_for(exception)
  output.puts "#{long_padding}#{failure_color("Future Success:")} #{failure_color(read_failed_line(exception, example).strip)}"
  output.puts "#{long_padding}#{failure_color(exception_class_name)}:" unless exception_class_name =~ /RSpec/
  exception.message.to_s.split("\n").each { |line| output.puts "#{long_padding}  #{failure_color(line)}" } if exception.message

  if shared_group = find_shared_group(example)
    dump_shared_failure_info(shared_group)
  end
end

#dump_failuresObject



20
21
22
23
24
25
26
27
28
29
# File 'lib/rspec/half_full.rb', line 20

def dump_failures
  return if failed_examples.empty?
  output.puts
  output.puts "Future successes:"
  failed_examples.each_with_index do |example, index|
    output.puts
    pending_fixed?(example) ? dump_pending_fixed(example, index) : dump_failure(example, index)
    dump_backtrace(example)
  end
end

#pluralize(count, string) ⇒ Object



54
55
56
57
58
59
60
# File 'lib/rspec/half_full.rb', line 54

def pluralize(count, string)
  if string.end_with?("success")
    "#{count} #{string}#{'es' unless count.to_f == 1}"
  else
    super(count, string)
  end
end

#summary_line(example_count, failure_count, pending_count) ⇒ Object



11
12
13
14
15
16
17
18
# File 'lib/rspec/half_full.rb', line 11

def summary_line(example_count, failure_count, pending_count)
  success_count = example_count - failure_count - pending_count
  summary = pluralize(example_count, "example")
  summary << ", " << "#{success_count} already successful" if success_count > 0
  summary << ", " << pluralize(failure_count, "future success")
  summary << ", #{pending_count} pending" if pending_count > 0
  summary
end