class Minitest::TestProfile::Reporter
Attributes
test_results[R]
Public Class Methods
new(io = $stdout, options = {})
click to toggle source
Calls superclass method
# File lib/minitest/test_profile/reporter.rb, line 6 def initialize(io = $stdout, options = {}) super(io, options) @test_results = [] @count = options[:count] @calculated_total_time = nil end
Public Instance Methods
aggregate_slow_tests!()
click to toggle source
# File lib/minitest/test_profile/reporter.rb, line 36 def aggregate_slow_tests! @test_results.sort! { |a, b| b.time <=> a.time } @test_results = @test_results.take(count) end
calculate_total_time()
click to toggle source
# File lib/minitest/test_profile/reporter.rb, line 32 def calculate_total_time @calculated_total_time ||= @test_results.inject(0) { |sum, slow_test| sum + slow_test.time } end
count()
click to toggle source
# File lib/minitest/test_profile/reporter.rb, line 50 def count @count || Minitest::TestProfile.count end
display_aggregated_results()
click to toggle source
# File lib/minitest/test_profile/reporter.rb, line 23 def display_aggregated_results calculate_total_time aggregate_slow_tests! io.puts "\nTop %d slowest tests (%.6f seconds, %.1f%% of total time):\n" % [@test_results.size, slow_tests_total_time, ratio] @test_results.each do |test_result| io.puts "%s\n %.2f seconds\n" % [test_result.location, test_result.time] end end
ratio()
click to toggle source
# File lib/minitest/test_profile/reporter.rb, line 45 def ratio return 0.0 if @calculated_total_time == 0 (slow_tests_total_time / @calculated_total_time) * 100 end
record(result)
click to toggle source
# File lib/minitest/test_profile/reporter.rb, line 18 def record(result) return unless Minitest::TestProfile.use? @test_results << result end
report()
click to toggle source
# File lib/minitest/test_profile/reporter.rb, line 13 def report return unless Minitest::TestProfile.use? display_aggregated_results end
slow_tests_total_time()
click to toggle source
# File lib/minitest/test_profile/reporter.rb, line 41 def slow_tests_total_time @slow_tests_total_time ||= @test_results.inject(0) { |sum, slow_test| sum + slow_test.time } end