diff --git a/lib/minitest/display.rb b/lib/minitest/display.rb index 8cfe692..887b67c 100644 --- a/lib/minitest/display.rb +++ b/lib/minitest/display.rb @@ -27,6 +27,7 @@ def options @options ||= { :suite_names => true, :suite_divider => " | ", + :suite_field_formatter => false, # Examples: 1 line output: " | %s", multi-line output: "\n %s" :suite_time => true, :color => true, :wrap_at => 80, @@ -213,15 +214,22 @@ def _run_suite(suite, type) # PATCH if display.options[:suite_names] && display.printable_suite?(suite) suite_header ||= suite.to_s - print display.color("\n#{suite_header}#{display.options[:suite_divider]}", :suite) + + if display.options[:suite_field_formatter] + print display.color("\n#{suite_header}#{display.options[:suite_field_formatter]}" % '', :suite) + else + print display.color("\n#{suite_header}#{display.options[:suite_divider]}", :suite) + end end + + suite_header_length = suite_header ? suite_header.length : 0 # END filter = options[:filter] || '/./' filter = Regexp.new $1 if filter =~ /\/(.*)\// # PATCH - wrap_at = display.options[:wrap_at] - suite_header.length if suite_header + wrap_at = display.options[:wrap_at] - suite_header_length if suite_header wrap_count = wrap_at record_suite_started(suite) @@ -258,10 +266,18 @@ def _run_suite(suite, type) puts if @verbose - wrap_count -= 1 - if wrap_count == 0 - print "\n#{' ' * suite_header.length}#{display.options[:suite_divider]}" - wrap_count = wrap_at + unless wrap_count.nil? + wrap_count -= 1 + + if wrap_count == 0 + if display.options[:suite_field_formatter] + print display.options[:suite_field_formatter] % '' + else + print "\n#{' ' * suite_header_length}#{display.options[:suite_divider]}" + end + + wrap_count = wrap_at + end end inst._assertions @@ -270,10 +286,16 @@ def _run_suite(suite, type) total_time = Time.now - full_start_time record_suite_finished(suite, assertions, total_time) - if assertions.length > 0 && display.options[:suite_time] - print "\n#{' ' * suite_header.length}#{display.options[:suite_divider]}" - print "%.2f s" % total_time + + if suite_header && assertions.length > 0 && display.options[:suite_time] + if display.options[:suite_field_formatter] + print display.options[:suite_field_formatter] % ("%.2f s" % total_time) + else + print "\n#{' ' * suite_header_length}#{display.options[:suite_divider]}" + print "%.2f s" % total_time + end end + return assertions.size, assertions.inject(0) { |sum, n| sum + n } end