+++ /dev/null
-require 'spec/runner/formatter/progress_bar_formatter'
-
-module Spec
- module Runner
- module Formatter
- class ProfileFormatter < ProgressBarFormatter
-
- def initialize(options, where)
- super
- @example_times = []
- end
-
- def start(count)
- @output.puts "Profiling enabled."
- end
-
- def example_started(example)
- @time = Time.now
- end
-
- def example_passed(example)
- super
- @example_times << [
- example_group.description,
- example.description,
- Time.now - @time
- ]
- end
-
- def start_dump
- super
- @output.puts "\n\nTop 10 slowest examples:\n"
-
- @example_times = @example_times.sort_by do |description, example, time|
- time
- end.reverse
-
- @example_times[0..9].each do |description, example, time|
- @output.print red(sprintf("%.7f", time))
- @output.puts " #{description} #{example}"
- end
- @output.flush
- end
- end
- end
- end
-end