module TestBench::Output::Summary::Session
Public Class Methods
call(file_count: nil, test_count: nil, pass_count: nil, skip_count: nil, failure_count: nil, error_count: nil, elapsed_time: nil, writer: nil)
click to toggle source
# File lib/test_bench/output/summary/session.rb, line 5 def self.call(file_count: nil, test_count: nil, pass_count: nil, skip_count: nil, failure_count: nil, error_count: nil, elapsed_time: nil, writer: nil) file_count ||= 0 test_count ||= 0 pass_count ||= 0 skip_count ||= 0 failure_count ||= 0 error_count ||= 0 elapsed_time ||= 0 writer ||= Writer.build failed = error_count > 0 if elapsed_time.nonzero? tests_per_second = test_count / elapsed_time end if failed writer.escape_code(:red) end writer .text("Finished running #{numeric_label(file_count, 'file')}") .newline .text("Ran %s in %.3fs (%.1f tests/second)" % [ numeric_label(test_count, 'test'), elapsed_time, tests_per_second || 0]) .newline if pass_count.nonzero? && !failed writer .escape_code(:green) .text("#{pass_count} passed") .escape_code(:reset_fg) else writer.text("#{pass_count} passed") end writer.text(", ") if skip_count.nonzero? && !failed writer .escape_code(:yellow) .text("#{skip_count} skipped") .escape_code(:reset_fg) else writer.text("#{skip_count} skipped") end writer.text(", ") if failure_count.nonzero? writer .escape_code(:bold) .text("#{failure_count} failed") .escape_code(:reset_intensity) else writer.text("0 failed") end writer.text(", ") if failed writer .escape_code(:bold) .text(numeric_label(error_count, 'total error')) .escape_code(:reset_intensity) .escape_code(:reset_fg) else writer.text("0 total errors") end 2.times do writer.newline end end
numeric_label(number, label, plural_text=nil)
click to toggle source
# File lib/test_bench/output/summary/session.rb, line 82 def self.numeric_label(number, label, plural_text=nil) plural_text ||= 's' if number == 1 "#{number} #{label}" else "#{number} #{label}#{plural_text}" end end