Class: RSpec::Core::Notifications::SummaryNotification
- Inherits:
-
Struct
- Object
- Struct
- RSpec::Core::Notifications::SummaryNotification
- Defined in:
- lib/rspec/core/notifications.rb,
lib/rspec/core/notifications.rb
Overview
The SummaryNotification
holds information about the results of running
a test suite. It is used by formatters to provide information at the end
of the test run.
Instance Attribute Summary collapse
-
#duration ⇒ Float
the time taken (in seconds) to run the suite.
-
#errors_outside_of_examples_count ⇒ Integer
the number of errors that have occurred processing the spec suite.
-
#examples ⇒ Array<RSpec::Core::Example>
the examples run.
-
#failed_examples ⇒ Array<RSpec::Core::Example>
the failed examples.
-
#load_time ⇒ Float
the number of seconds taken to boot RSpec and load the spec files.
-
#pending_examples ⇒ Array<RSpec::Core::Example>
the pending examples.
Instance Method Summary collapse
-
#colorized_rerun_commands(colorizer = ::RSpec::Core::Formatters::ConsoleCodes) ⇒ String
Formats failures into a rerunable command format.
-
#colorized_totals_line(colorizer = ::RSpec::Core::Formatters::ConsoleCodes) ⇒ String
Wraps the results line with colors based on the configured colors for failure, pending, and success.
-
#example_count ⇒ Fixnum
The number of examples run.
-
#failure_count ⇒ Fixnum
The number of failed examples.
-
#formatted_duration ⇒ String
A formatted version of the time it took to run the suite.
-
#formatted_load_time ⇒ String
A formatted version of the time it took to boot RSpec and load the spec files.
-
#fully_formatted(colorizer = ::RSpec::Core::Formatters::ConsoleCodes) ⇒ String
The summary information fully formatted in the way that RSpec's built-in formatters emit.
-
#pending_count ⇒ Fixnum
The number of pending examples.
-
#totals_line ⇒ String
A line summarising the result totals of the spec run.
Instance Attribute Details
#duration ⇒ Float
the time taken (in seconds) to run the suite
300 301 302 |
# File 'lib/rspec/core/notifications.rb', line 300 def duration @duration end |
#errors_outside_of_examples_count ⇒ Integer
the number of errors that have occurred processing the spec suite
300 301 302 |
# File 'lib/rspec/core/notifications.rb', line 300 def errors_outside_of_examples_count @errors_outside_of_examples_count end |
#examples ⇒ Array<RSpec::Core::Example>
the examples run
300 301 302 |
# File 'lib/rspec/core/notifications.rb', line 300 def examples @examples end |
#failed_examples ⇒ Array<RSpec::Core::Example>
the failed examples
300 301 302 |
# File 'lib/rspec/core/notifications.rb', line 300 def failed_examples @failed_examples end |
#load_time ⇒ Float
the number of seconds taken to boot RSpec and load the spec files
300 301 302 |
# File 'lib/rspec/core/notifications.rb', line 300 def load_time @load_time end |
#pending_examples ⇒ Array<RSpec::Core::Example>
the pending examples
300 301 302 |
# File 'lib/rspec/core/notifications.rb', line 300 def pending_examples @pending_examples end |
Instance Method Details
#colorized_rerun_commands(colorizer = ::RSpec::Core::Formatters::ConsoleCodes) ⇒ String
Formats failures into a rerunable command format.
364 365 366 367 368 369 370 |
# File 'lib/rspec/core/notifications.rb', line 364 def colorized_rerun_commands(colorizer=::RSpec::Core::Formatters::ConsoleCodes) "\nFailed examples:\n\n" + failed_examples.map do |example| colorizer.wrap("rspec #{rerun_argument_for(example)}", RSpec.configuration.failure_color) + " " + colorizer.wrap("# #{example.full_description}", RSpec.configuration.detail_color) end.join("\n") end |
#colorized_totals_line(colorizer = ::RSpec::Core::Formatters::ConsoleCodes) ⇒ String
Wraps the results line with colors based on the configured colors for failure, pending, and success. Defaults to red, yellow, green accordingly.
347 348 349 350 351 352 353 354 355 |
# File 'lib/rspec/core/notifications.rb', line 347 def colorized_totals_line(colorizer=::RSpec::Core::Formatters::ConsoleCodes) if failure_count > 0 || errors_outside_of_examples_count > 0 colorizer.wrap(totals_line, RSpec.configuration.failure_color) elsif pending_count > 0 colorizer.wrap(totals_line, RSpec.configuration.pending_color) else colorizer.wrap(totals_line, RSpec.configuration.success_color) end end |
#example_count ⇒ Fixnum
Returns the number of examples run.
306 307 308 |
# File 'lib/rspec/core/notifications.rb', line 306 def example_count @example_count ||= examples.size end |
#failure_count ⇒ Fixnum
Returns the number of failed examples.
312 313 314 |
# File 'lib/rspec/core/notifications.rb', line 312 def failure_count @failure_count ||= failed_examples.size end |
#formatted_duration ⇒ String
Returns a formatted version of the time it took to run the suite.
374 375 376 |
# File 'lib/rspec/core/notifications.rb', line 374 def formatted_duration Formatters::Helpers.format_duration(duration) end |
#formatted_load_time ⇒ String
Returns a formatted version of the time it took to boot RSpec and load the spec files.
380 381 382 |
# File 'lib/rspec/core/notifications.rb', line 380 def formatted_load_time Formatters::Helpers.format_duration(load_time) end |
#fully_formatted(colorizer = ::RSpec::Core::Formatters::ConsoleCodes) ⇒ String
Returns The summary information fully formatted in the way that RSpec's built-in formatters emit.
386 387 388 389 390 391 392 393 394 395 396 |
# File 'lib/rspec/core/notifications.rb', line 386 def fully_formatted(colorizer=::RSpec::Core::Formatters::ConsoleCodes) formatted = "\nFinished in #{formatted_duration} " \ "(files took #{formatted_load_time} to load)\n" \ "#{colorized_totals_line(colorizer)}\n" unless failed_examples.empty? formatted += (colorized_rerun_commands(colorizer) + "\n") end formatted end |
#pending_count ⇒ Fixnum
Returns the number of pending examples.
318 319 320 |
# File 'lib/rspec/core/notifications.rb', line 318 def pending_count @pending_count ||= pending_examples.size end |
#totals_line ⇒ String
Returns A line summarising the result totals of the spec run.
324 325 326 327 328 329 330 331 332 333 334 335 336 |
# File 'lib/rspec/core/notifications.rb', line 324 def totals_line summary = Formatters::Helpers.pluralize(example_count, "example") + ", " + Formatters::Helpers.pluralize(failure_count, "failure") summary += ", #{pending_count} pending" if pending_count > 0 if errors_outside_of_examples_count > 0 summary += ( ", " + Formatters::Helpers.pluralize(errors_outside_of_examples_count, "error") + " occurred outside of examples" ) end summary end |