From 7d2e862d69b77b1ef26833965d52fdf90609b987 Mon Sep 17 00:00:00 2001 From: Nathan Hopkins Date: Sat, 15 Nov 2014 13:43:05 -0700 Subject: [PATCH] More progress on templated output. --- .../formatters/default_async_formatter.rb | 4 +- .../formatters/default_formatter.rb | 26 ++------- lib/micro_test/formatters/default_printer.rb | 54 ------------------ lib/micro_test/formatters/doc_formatter.rb | 56 ------------------- lib/micro_test/formatters/dots_formatter.rb | 19 ------- lib/micro_test/formatters/min_formatter.rb | 17 ------ .../views/default/_assert_fail.txt.erb | 2 +- .../formatters/views/default/_class.txt.erb | 2 + .../views/default/_test_fail.txt.erb | 2 +- .../formatters/views/default/suite.txt.erb | 6 ++ 10 files changed, 15 insertions(+), 173 deletions(-) delete mode 100644 lib/micro_test/formatters/default_printer.rb delete mode 100644 lib/micro_test/formatters/doc_formatter.rb delete mode 100644 lib/micro_test/formatters/dots_formatter.rb delete mode 100644 lib/micro_test/formatters/min_formatter.rb create mode 100644 lib/micro_test/formatters/views/default/_class.txt.erb create mode 100644 lib/micro_test/formatters/views/default/suite.txt.erb diff --git a/lib/micro_test/formatters/default_async_formatter.rb b/lib/micro_test/formatters/default_async_formatter.rb index 3889211..57194fe 100644 --- a/lib/micro_test/formatters/default_async_formatter.rb +++ b/lib/micro_test/formatters/default_async_formatter.rb @@ -1,9 +1,7 @@ -require File.join(File.dirname(__FILE__), "base_formatter") -require File.join(File.dirname(__FILE__), "default_printer") +require_relative "base_formatter" module MicroTest class DefaultAsyncFormatter < MicroTest::BaseFormatter - include DefaultPrinter set_short_name "default_async" def after_test(test) diff --git a/lib/micro_test/formatters/default_formatter.rb b/lib/micro_test/formatters/default_formatter.rb index 805232e..0f85f8d 100644 --- a/lib/micro_test/formatters/default_formatter.rb +++ b/lib/micro_test/formatters/default_formatter.rb @@ -1,43 +1,25 @@ require_relative "base_formatter" -require_relative "default_printer" module MicroTest class DefaultFormatter < MicroTest::BaseFormatter - include DefaultPrinter set_short_name "default" def before_class(test_class) - puts - print_with_line test_class.name + print Template.new(test_class, DefaultHelper).render(:_class) end def after_test(test) if test.passed? - print_test_pass test + print Template.new(test, DefaultHelper).render(:_test_pass) else - print_test_fail test + print Template.new(test, DefaultHelper).render(:_test_fail) end puts end def after_suite(test_classes) - puts - print_line - print_totals - puts " in #{yellow duration} seconds." - print_line - puts - puts - end - - private - - def print_totals - totals = [] - totals << green("#{passed} Passed") if passed > 0 - totals << red("#{failed} Failed") if failed > 0 - print totals.join(", ") + print Template.new(self, DefaultHelper).render(:suite) end end diff --git a/lib/micro_test/formatters/default_printer.rb b/lib/micro_test/formatters/default_printer.rb deleted file mode 100644 index 7b9f8fb..0000000 --- a/lib/micro_test/formatters/default_printer.rb +++ /dev/null @@ -1,54 +0,0 @@ -require_relative "./lib/template" -require_relative "./helpers/default_helper" - -module MicroTest - module DefaultPrinter - - protected - - def print_line - puts "".ljust(80, "-") - end - - def print_with_line(value) - puts "#{value} ".ljust(80, "-") - end - - def print_test_pass(test) - print Template.new(test, DefaultHelper).render(:_test_pass) - end - - def print_test_fail(test) - print Template.new(test, DefaultHelper).render(:_test_fail) - end - - #def print_assert_fail(assert) - # puts - # print "".ljust(9) - # puts "#{assert[:file_path]}:#{red(assert[:line_num])}" - # puts "".ljust(9) + "".rjust(71, "-") - # index = assert[:line_num] - 1 - # start = index - 2 - # start = 0 if start <= 0 - # finish = index + 2 - # finish = assert[:lines].length - 1 if finish >= assert[:lines].length - # print_assert_fail_lines assert, start, finish, index - #end - - #def print_assert_fail_lines(assert, start, finish, index) - # (start..finish).each do |i| - # print "".ljust(9) - # if i == index - # print red((i + 1).to_s.rjust(3, "0")) - # print red("|") - # print red(assert[:lines][i]) - # else - # print (i + 1).to_s.rjust(3, "0") - # print "|" - # print assert[:lines][i] - # end - # end - #end - - end -end diff --git a/lib/micro_test/formatters/doc_formatter.rb b/lib/micro_test/formatters/doc_formatter.rb deleted file mode 100644 index bcecf81..0000000 --- a/lib/micro_test/formatters/doc_formatter.rb +++ /dev/null @@ -1,56 +0,0 @@ -require File.join(File.dirname(__FILE__), "base_formatter") - -module MicroTest - class DocFormatter < MicroTest::BaseFormatter - set_short_name "doc" - - def initialize - @failures = [] - end - - def before_class(test_class) - puts "\n#{test_class.name}" - end - - def after_test(test) - super - if test.passed? - puts green(" #{test.desc}") - else - test.asserts.each do |assert| - next if assert[:value] - @failures << { :test => test, :assert => assert } - puts red(" #{test.desc}") - end - end - end - - def print_failures(failures) - puts - puts "Failures:" - puts - failures.each_with_index do |failure, idx| - test = failure[:test] - assert = failure[:assert] - puts - puts " #{idx + 1}) #{test.test_class.name} #{test.desc}" - puts red(" Failure/Error: #{assert[:line].strip}") - puts cyan(" #{assert[:file_path]}:#{assert[:line_num]}") - end - end - - def after_suite(test_classes) - print_failures(@failures) if failed > 0 - puts - msg = "#{passed + failed} examples, #{failed} failures" - if failed > 0 - puts red(msg) - else - puts msg - end - puts - super - end - - end -end diff --git a/lib/micro_test/formatters/dots_formatter.rb b/lib/micro_test/formatters/dots_formatter.rb deleted file mode 100644 index 041808d..0000000 --- a/lib/micro_test/formatters/dots_formatter.rb +++ /dev/null @@ -1,19 +0,0 @@ -require File.join(File.dirname(__FILE__), "base_formatter") - -module MicroTest - class DotsFormatter < MicroTest::BaseFormatter - set_short_name "dots" - - def after_test(test) - print(test.passed? ? green(".") : red(".")) - end - - def after_suite(test_classes) - puts - puts "".ljust(80, "-") - puts "Finished in #{duration} seconds." - puts - end - - end -end diff --git a/lib/micro_test/formatters/min_formatter.rb b/lib/micro_test/formatters/min_formatter.rb deleted file mode 100644 index 9e8ae9c..0000000 --- a/lib/micro_test/formatters/min_formatter.rb +++ /dev/null @@ -1,17 +0,0 @@ -require File.join(File.dirname(__FILE__), "base_formatter") - -module MicroTest - class MinFormatter < MicroTest::BaseFormatter - set_short_name "min" - - def after_suite(test_classes) - puts - puts "Passed: #{green passed}" - puts "Failed: #{red failed}" - puts "".ljust(80, "-") - puts "Finished in #{duration} seconds." - puts - end - - end -end diff --git a/lib/micro_test/formatters/views/default/_assert_fail.txt.erb b/lib/micro_test/formatters/views/default/_assert_fail.txt.erb index 9511a49..22a0f01 100644 --- a/lib/micro_test/formatters/views/default/_assert_fail.txt.erb +++ b/lib/micro_test/formatters/views/default/_assert_fail.txt.erb @@ -1,5 +1,5 @@ <%= @context[:file_path].strip %>:<%= red @context[:line_num] %> - ------------------------------------------------------------- + ------------------------------------------------------------------------------ <% assert_lines(@context).each do |line| -%> <%= send line[:color], line[:line_num].to_s.rjust(3, "0") -%>| <%= send line[:color], line[:line] -%> <% end -%> diff --git a/lib/micro_test/formatters/views/default/_class.txt.erb b/lib/micro_test/formatters/views/default/_class.txt.erb new file mode 100644 index 0000000..5eece39 --- /dev/null +++ b/lib/micro_test/formatters/views/default/_class.txt.erb @@ -0,0 +1,2 @@ + +<%= @context.name.ljust(80, "-") %> diff --git a/lib/micro_test/formatters/views/default/_test_fail.txt.erb b/lib/micro_test/formatters/views/default/_test_fail.txt.erb index 66e1673..7e2502b 100644 --- a/lib/micro_test/formatters/views/default/_test_fail.txt.erb +++ b/lib/micro_test/formatters/views/default/_test_fail.txt.erb @@ -1,2 +1,2 @@ - <%= send duration_color(@context.duration), @context.duration %> <%= red @context.desc %> + <%= send duration_color(@context.duration), @context.duration %> <%= red @context.desc -%> <%= partial :_assert_fail, *@context.failed_asserts -%> diff --git a/lib/micro_test/formatters/views/default/suite.txt.erb b/lib/micro_test/formatters/views/default/suite.txt.erb new file mode 100644 index 0000000..0505057 --- /dev/null +++ b/lib/micro_test/formatters/views/default/suite.txt.erb @@ -0,0 +1,6 @@ + +-------------------------------------------------------------------------------- +<%= green "#{@context.passed} Passed" -%>, <%= red "#{@context.failed} Failed" -%> + Finished in <%= yellow @context.duration %> seconds. +-------------------------------------------------------------------------------- +