class MinitestBender::Sections::Activity
Constants
- TIME_UNITS
Attributes
io[R]
results[R]
started_at[R]
Public Class Methods
new(io, started_at, results)
click to toggle source
# File lib/minitest-bender/sections/activity.rb, line 6 def initialize(io, started_at, results) @io = io @started_at = started_at @results = results end
Public Instance Methods
print()
click to toggle source
# File lib/minitest-bender/sections/activity.rb, line 12 def print io.puts " #{formatted_total_tests} with #{formatted_total_assertions} #{auxiliary_verb} run in #{formatted_total_time} (#{formatted_tests_rate}, #{formatted_assertions_rate})" io.puts end
Private Instance Methods
assertion_count()
click to toggle source
# File lib/minitest-bender/sections/activity.rb, line 65 def assertion_count @assertion_count ||= results.reduce(0) { |acum, result| acum + result.assertions } end
assertions_rate()
click to toggle source
# File lib/minitest-bender/sections/activity.rb, line 49 def assertions_rate (assertion_count / total_time).round(4) end
auxiliary_verb()
click to toggle source
# File lib/minitest-bender/sections/activity.rb, line 29 def auxiliary_verb test_count == 1 ? 'was' : 'were' end
formatted_assertions_rate()
click to toggle source
# File lib/minitest-bender/sections/activity.rb, line 41 def formatted_assertions_rate Colorizer.colorize("#{assertions_rate} assertions/s", :time) end
formatted_tests_rate()
click to toggle source
# File lib/minitest-bender/sections/activity.rb, line 37 def formatted_tests_rate Colorizer.colorize("#{tests_rate} tests/s", :time) end
formatted_total_assertions()
click to toggle source
# File lib/minitest-bender/sections/activity.rb, line 25 def formatted_total_assertions Colorizer.colorize(total_assertions, :assertions) end
formatted_total_tests()
click to toggle source
# File lib/minitest-bender/sections/activity.rb, line 21 def formatted_total_tests Colorizer.colorize(total_tests, :tests) end
formatted_total_time()
click to toggle source
# File lib/minitest-bender/sections/activity.rb, line 33 def formatted_total_time Colorizer.colorize(total_time_string, :time) end
test_count()
click to toggle source
# File lib/minitest-bender/sections/activity.rb, line 61 def test_count results.size end
tests_rate()
click to toggle source
# File lib/minitest-bender/sections/activity.rb, line 45 def tests_rate (test_count / total_time).round(4) end
time_units()
click to toggle source
# File lib/minitest-bender/sections/activity.rb, line 90 def time_units TIME_UNITS end
total_assertions()
click to toggle source
# File lib/minitest-bender/sections/activity.rb, line 57 def total_assertions "#{assertion_count} assertion#{assertion_count == 1 ? '' : 's'}" end
total_tests()
click to toggle source
# File lib/minitest-bender/sections/activity.rb, line 53 def total_tests "#{test_count} test#{test_count == 1 ? '' : 's'}" end
total_time()
click to toggle source
# File lib/minitest-bender/sections/activity.rb, line 86 def total_time @total_time ||= Time.now - started_at end
total_time_string()
click to toggle source
# File lib/minitest-bender/sections/activity.rb, line 69 def total_time_string minutes, seconds = total_time.divmod(60) hours, minutes = minutes.divmod(60) days, hours = hours.divmod(24) values = [days, hours, minutes] seconds_decimals = values.all?(&:zero?) ? 3 : 0 values.push(seconds.round(seconds_decimals)) values_with_units = values.map.with_index do |value, index| unit = time_units[index] value > 0 ? "#{value} #{unit}#{value.to_s == '1' ? '' : 's'}" : '' end Utils.english_join(values_with_units) end