Class: Minitest::ProfileReporter
Relationships & Source Files | |
Super Chains via Extension / Inclusion / Inheritance | |
Class Chain:
self,
Reporter
|
|
Instance Chain:
self,
Reporter
|
|
Inherits: |
Reporter
|
Defined in: | railties/lib/minitest/rails_plugin.rb |
Class Method Summary
Instance Attribute Summary
- #passed? ⇒ Boolean readonly
- #results rw
Instance Method Summary
- #record(result)
- #report
- #summary
- #print_summary private
- #source_location(result) private
Constructor Details
.new(io = $stdout, options = {}) ⇒ ProfileReporter
# File 'railties/lib/minitest/rails_plugin.rb', line 31
def initialize(io = $stdout, = {}) super @results = [] @count = [:profile] end
Instance Attribute Details
#passed? ⇒ Boolean
(readonly)
[ GitHub ]
# File 'railties/lib/minitest/rails_plugin.rb', line 50
def passed? true end
#results (rw)
[ GitHub ]# File 'railties/lib/minitest/rails_plugin.rb', line 29
attr_accessor :results
Instance Method Details
#print_summary (private)
[ GitHub ]# File 'railties/lib/minitest/rails_plugin.rb', line 65
def print_summary total_time = @results.sum(&:time) @results.sort! { |a, b| b.time <=> a.time } slow_results = @results.take(@count) slow_tests_total_time = slow_results.sum(&:time) ratio = (total_time == 0) ? 0.0 : (slow_tests_total_time / total_time) * 100 io.puts("\nTop %d slowest tests (%.2f seconds, %.1f%% of total time):\n" % [slow_results.size, slow_tests_total_time, ratio]) slow_results.each do |result| io.puts(" %s\n %.4f seconds %s\n" % [result.location, result.time, source_location(result)]) end io.puts("\n") end
#record(result)
[ GitHub ]# File 'railties/lib/minitest/rails_plugin.rb', line 37
def record(result) if output_file = ENV["RAILTIES_OUTPUT_FILE"] File.open(output_file, "a") do |f| # Round-trip for re-serialization data = JSON.parse(result.to_json) data[:location] = result.location f.puts(data.to_json) end else @results << result end end
#report
[ GitHub ]# File 'railties/lib/minitest/rails_plugin.rb', line 54
def report # Skip if we're outputting to a file return if ENV["RAILTIES_OUTPUT_FILE"] print_summary end
#source_location(result) (private)
[ GitHub ]#summary
[ GitHub ]# File 'railties/lib/minitest/rails_plugin.rb', line 60
def summary print_summary end