Class: RSpec::Core::Notifications::ProfileNotification
- Inherits:
-
Struct
- Object
- Struct
- RSpec::Core::Notifications::ProfileNotification
- Defined in:
- lib/rspec/core/notifications.rb,
lib/rspec/core/notifications.rb
Overview
The ProfileNotification
holds information about the results of running a
test suite when profiling is enabled. It is used by formatters to provide
information at the end of the test run for profiling information.
Instance Attribute Summary (collapse)
-
- (Float) duration
the time taken (in seconds) to run the suite.
-
- (Array<RSpec::Core::Example>) examples
the examples run.
-
- (Fixnum) number_of_examples
the number of examples to profile.
Instance Method Summary (collapse)
-
- (String) percentage
The percentage of total time taken.
-
- (Float) slow_duration
The time taken (in seconds) to run the slowest examples.
-
- (Array<RSpec::Core::Example>) slowest_examples
The slowest examples.
-
- (Array<RSpec::Core::Example>) slowest_groups
The slowest example groups.
Instance Attribute Details
- (Float) duration
the time taken (in seconds) to run the suite
519 520 521 |
# File 'lib/rspec/core/notifications.rb', line 519 def duration @duration end |
- (Array<RSpec::Core::Example>) examples
the examples run
519 520 521 |
# File 'lib/rspec/core/notifications.rb', line 519 def examples @examples end |
- (Fixnum) number_of_examples
the number of examples to profile
519 520 521 |
# File 'lib/rspec/core/notifications.rb', line 519 def number_of_examples @number_of_examples end |
Instance Method Details
- (String) percentage
Returns the percentage of total time taken
538 539 540 541 542 543 544 |
# File 'lib/rspec/core/notifications.rb', line 538 def percentage @percentage ||= begin time_taken = slow_duration / duration '%.1f' % ((time_taken.nan? ? 0.0 : time_taken) * 100) end end |
- (Float) slow_duration
Returns the time taken (in seconds) to run the slowest examples
530 531 532 533 534 535 |
# File 'lib/rspec/core/notifications.rb', line 530 def slow_duration @slow_duration ||= slowest_examples.inject(0.0) do |i, e| i + e.execution_result.run_time end end |
- (Array<RSpec::Core::Example>) slowest_examples
Returns the slowest examples
522 523 524 525 526 527 |
# File 'lib/rspec/core/notifications.rb', line 522 def slowest_examples @slowest_examples ||= examples.sort_by do |example| -example.execution_result.run_time end.first(number_of_examples) end |
- (Array<RSpec::Core::Example>) slowest_groups
Returns the slowest example groups
547 548 549 |
# File 'lib/rspec/core/notifications.rb', line 547 def slowest_groups @slowest_groups ||= calculate_slowest_groups end |