Class: RSpec::Core::Reporter
- Inherits:
-
Object
- Object
- RSpec::Core::Reporter
- Defined in:
- lib/rspec/core/reporter.rb
Constant Summary
- NOTIFICATIONS =
start message example_group_started example_group_finished example_started example_passed example_failed example_pending start_dump dump_pending dump_failures dump_summary seed close stop deprecation deprecation_summary].map { |n| n.to_sym }
Instance Method Summary (collapse)
- - (Object) abort(seed)
- - (Object) deprecation(message)
- - (Object) example_failed(example)
- - (Object) example_group_finished(group)
- - (Object) example_group_started(group)
- - (Object) example_passed(example)
- - (Object) example_pending(example)
- - (Object) example_started(example)
- - (Object) finish(seed)
-
- (Reporter) initialize(*formatters)
constructor
A new instance of Reporter.
- - (Object) message(message)
- - (Object) notify(event, *args)
-
- (Object) register_listener(listener, *notifications)
Registers a listener to a list of notifications.
- - (Object) registered_listeners(notification)
-
- (Object) report(expected_example_count, seed = nil)
Initializes the report run and yields itself for further reporting.
- - (Object) start(expected_example_count)
- - (Object) stop
Constructor Details
- (Reporter) initialize(*formatters)
A new instance of Reporter
7 8 9 10 11 12 13 14 |
# File 'lib/rspec/core/reporter.rb', line 7 def initialize(*formatters) @listeners = Hash.new { |h,k| h[k] = [] } formatters.each do |formatter| register_listener(formatter, *NOTIFICATIONS) end @example_count = @failure_count = @pending_count = 0 @duration = @start = nil end |
Instance Method Details
- (Object) abort(seed)
118 119 120 121 |
# File 'lib/rspec/core/reporter.rb', line 118 def abort(seed) RSpec.deprecate "RSpec::Core::Reporter#abort", :replacement => "RSpec::Core::Reporter#finish" finish(seed) end |
- (Object) deprecation(message)
100 101 102 |
# File 'lib/rspec/core/reporter.rb', line 100 def deprecation() notify :deprecation, end |
- (Object) example_failed(example)
90 91 92 93 |
# File 'lib/rspec/core/reporter.rb', line 90 def example_failed(example) @failure_count += 1 notify :example_failed, example end |
- (Object) example_group_finished(group)
77 78 79 |
# File 'lib/rspec/core/reporter.rb', line 77 def example_group_finished(group) notify :example_group_finished, group unless group.descendant_filtered_examples.empty? end |
- (Object) example_group_started(group)
73 74 75 |
# File 'lib/rspec/core/reporter.rb', line 73 def example_group_started(group) notify :example_group_started, group unless group.descendant_filtered_examples.empty? end |
- (Object) example_passed(example)
86 87 88 |
# File 'lib/rspec/core/reporter.rb', line 86 def example_passed(example) notify :example_passed, example end |
- (Object) example_pending(example)
95 96 97 98 |
# File 'lib/rspec/core/reporter.rb', line 95 def example_pending(example) @pending_count += 1 notify :example_pending, example end |
- (Object) example_started(example)
81 82 83 84 |
# File 'lib/rspec/core/reporter.rb', line 81 def example_started(example) @example_count += 1 notify :example_started, example end |
- (Object) finish(seed)
104 105 106 107 108 109 110 111 112 113 114 115 116 |
# File 'lib/rspec/core/reporter.rb', line 104 def finish(seed) begin stop notify :start_dump notify :dump_pending notify :dump_failures notify :deprecation_summary notify :dump_summary, @duration, @example_count, @failure_count, @pending_count notify :seed, seed if seed ensure notify :close end end |
- (Object) message(message)
69 70 71 |
# File 'lib/rspec/core/reporter.rb', line 69 def () notify :message, end |
- (Object) notify(event, *args)
128 129 130 131 132 |
# File 'lib/rspec/core/reporter.rb', line 128 def notify(event, *args, &block) registered_listeners(event).each do |formatter| formatter.send(event, *args, &block) end end |
- (Object) register_listener(listener, *notifications)
Registers a listener to a list of notifications. The reporter will send notification of events to all registered listeners
22 23 24 25 26 27 |
# File 'lib/rspec/core/reporter.rb', line 22 def register_listener(listener, *notifications) notifications.each do |notification| @listeners[notification.to_sym] << listener if listener.respond_to?(notification) end true end |
- (Object) registered_listeners(notification)
29 30 31 |
# File 'lib/rspec/core/reporter.rb', line 29 def registered_listeners(notification) @listeners[notification] end |
- (Object) report(count, &block) - (Object) report(count, seed, &block)
Initializes the report run and yields itself for further reporting. The block is required, so that the reporter can manage cleaning up after the run.
Warning:
The seed
argument is an internal API and is not guaranteed to be
supported in the future.
55 56 57 58 59 60 61 62 |
# File 'lib/rspec/core/reporter.rb', line 55 def report(expected_example_count, seed=nil) start(expected_example_count) begin yield self ensure finish(seed) end end |
- (Object) start(expected_example_count)
64 65 66 67 |
# File 'lib/rspec/core/reporter.rb', line 64 def start(expected_example_count) @start = RSpec::Core::Time.now notify :start, expected_example_count end |
- (Object) stop
123 124 125 126 |
# File 'lib/rspec/core/reporter.rb', line 123 def stop @duration = (RSpec::Core::Time.now - @start).to_f if @start notify :stop end |