Class: Spec::Runner::Formatter::BaseTextFormatter
Overview
Baseclass for text-based formatters. Can in fact be used for non-text based ones too - just ignore the output
constructor argument.
Instance Attribute Summary collapse
Instance Method Summary
collapse
#add_example_group, #example_failed, #example_passed, #example_started, #start, #start_dump
Constructor Details
Creates a new instance that will write to output
. If output
is a String, output will be written to the File with that name, otherwise output
is exected to be an IO (or an object that responds to #puts and #write).
16
17
18
19
20
21
22
23
24
25
|
# File 'lib/spec/runner/formatter/base_text_formatter.rb', line 16
def initialize(options, output)
@options = options
if String === output
FileUtils.mkdir_p(File.dirname(output))
@output = File.open(output, 'w')
else
@output = output
end
@pending_examples = []
end
|
Instance Attribute Details
#example_group ⇒ Object
Returns the value of attribute example_group.
11
12
13
|
# File 'lib/spec/runner/formatter/base_text_formatter.rb', line 11
def example_group
@example_group
end
|
Returns the value of attribute output.
11
12
13
|
# File 'lib/spec/runner/formatter/base_text_formatter.rb', line 11
def output
@output
end
|
Instance Method Details
85
86
87
|
# File 'lib/spec/runner/formatter/base_text_formatter.rb', line 85
def close
@output.close if (IO === @output) & (@output != $stdout)
end
|
#colorize_failure(message, failure) ⇒ Object
43
44
45
|
# File 'lib/spec/runner/formatter/base_text_formatter.rb', line 43
def colorize_failure(message, failure)
failure.pending_fixed? ? blue(message) : red(message)
end
|
#colourise(message, failure) ⇒ Object
47
48
49
50
|
# File 'lib/spec/runner/formatter/base_text_formatter.rb', line 47
def colourise(message, failure)
Spec::deprecate("BaseTextFormatter#colourise", "colorize_failure")
colorize_failure(message, failure)
end
|
#dump_failure(counter, failure) ⇒ Object
35
36
37
38
39
40
41
|
# File 'lib/spec/runner/formatter/base_text_formatter.rb', line 35
def dump_failure(counter, failure)
@output.puts
@output.puts "#{counter.to_s})"
@output.puts colorize_failure("#{failure.}\n#{failure.exception.message}", failure)
@output.puts format_backtrace(failure.exception.backtrace)
@output.flush
end
|
#dump_pending ⇒ Object
73
74
75
76
77
78
79
80
81
82
83
|
# File 'lib/spec/runner/formatter/base_text_formatter.rb', line 73
def dump_pending
unless @pending_examples.empty?
@output.puts
@output.puts "Pending:"
@pending_examples.each do |pending_example|
@output.puts "\n#{pending_example[0]} (#{pending_example[1]})"
@output.puts "#{pending_example[2]}\n"
end
end
@output.flush
end
|
#dump_summary(duration, example_count, failure_count, pending_count) ⇒ Object
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
# File 'lib/spec/runner/formatter/base_text_formatter.rb', line 52
def dump_summary(duration, example_count, failure_count, pending_count)
return if dry_run?
@output.puts
@output.puts "Finished in #{duration} seconds"
@output.puts
summary = "#{example_count} example#{'s' unless example_count == 1}, #{failure_count} failure#{'s' unless failure_count == 1}"
summary << ", #{pending_count} pending" if pending_count > 0
if failure_count == 0
if pending_count > 0
@output.puts yellow(summary)
else
@output.puts green(summary)
end
else
@output.puts red(summary)
end
@output.flush
end
|
#example_group_started(example_group_proxy) ⇒ Object
27
28
29
|
# File 'lib/spec/runner/formatter/base_text_formatter.rb', line 27
def example_group_started(example_group_proxy)
@example_group = example_group_proxy
end
|
#example_pending(example, message, deprecated_pending_location = nil) ⇒ Object
31
32
33
|
# File 'lib/spec/runner/formatter/base_text_formatter.rb', line 31
def example_pending(example, message, deprecated_pending_location=nil)
@pending_examples << ["#{@example_group.description} #{example.description}", message, example.location]
end
|
89
90
91
92
|
# File 'lib/spec/runner/formatter/base_text_formatter.rb', line 89
def format_backtrace(backtrace)
return "" if backtrace.nil?
backtrace.map { |line| backtrace_line(line) }.join("\n")
end
|