class RSpec::Core::Formatters::ProfileFormatter
Formatter for providing profile output.
@api private
def bold(text)
def bold(text) ConsoleCodes.wrap(text, :bold) end
def dump_profile(profile)
-
profile
(ProfileNotification
) -- containing duration,
Other tags:
- Api: - public
def dump_profile(profile) dump_profile_slowest_examples(profile) dump_profile_slowest_example_groups(profile) end
def dump_profile_slowest_example_groups(profile)
def dump_profile_slowest_example_groups(profile) return if profile.slowest_groups.empty? @output.puts "\nTop #{profile.slowest_groups.size} slowest example groups:" profile.slowest_groups.each do |loc, hash| average = "#{bold(Helpers.format_seconds(hash[:average]))} #{bold("seconds")} average" total = "#{Helpers.format_seconds(hash[:total_time])} seconds" count = Helpers.pluralize(hash[:count], "example") @output.puts " #{hash[:description]}" @output.puts " #{average} (#{total} / #{count}) #{loc}" end end
def dump_profile_slowest_examples(profile)
def dump_profile_slowest_examples(profile) @output.puts "\nTop #{profile.slowest_examples.size} slowest " \ "examples (#{Helpers.format_seconds(profile.slow_duration)} " \ "seconds, #{profile.percentage}% of total time):\n" profile.slowest_examples.each do |example| @output.puts " #{example.full_description}" @output.puts " #{bold(Helpers.format_seconds(example.execution_result.run_time))} " \ "#{bold("seconds")} #{format_caller(example.location)}" end end
def format_caller(caller_info)
def format_caller(caller_info) RSpec.configuration.backtrace_formatter.backtrace_line( caller_info.to_s.split(':in `block').first) end
def initialize(output)
def initialize(output) @output = output end