null+****@clear*****
null+****@clear*****
Sat Aug 11 14:18:52 JST 2012
Kouhei Sutou 2012-08-11 14:18:52 +0900 (Sat, 11 Aug 2012) New Revision: 365764345f05ffc70858f864ed99e19a75c6d658 https://github.com/groonga/grntest/commit/365764345f05ffc70858f864ed99e19a75c6d658 Log: Show failed tests in parallel tests Modified files: lib/groonga/tester.rb Modified: lib/groonga/tester.rb (+47 -33) =================================================================== --- lib/groonga/tester.rb 2012-08-11 14:13:00 +0900 (468da65) +++ lib/groonga/tester.rb 2012-08-11 14:18:52 +0900 (793ba83) @@ -1294,6 +1294,33 @@ EOF puts("%.4g%% passed in %.4fs." % [pass_ratio, elapsed_time]) end + def report_failure(result) + report_marker + report_diff(result.expected, result.actual) + report_marker + end + + def report_marker + puts("=" * @term_width) + end + + def report_diff(expected, actual) + create_temporary_file("expected", expected) do |expected_file| + create_temporary_file("actual", actual) do |actual_file| + diff_options =****@teste*****_options.dup + diff_options.concat(["--label", "(actual)", actual_file.path, + "--label", "(expected)", expected_file.path]) + system(@tester.diff, *diff_options) + end + end + end + + def report_test_result(result, label) + message = " %10.4fs [%s]" % [result.elapsed_time, label] + message = message.rjust(@term_width - @current_column) if @term_width > 0 + puts(message) + end + def print(message) @current_column += message.to_s.size @output.print(message) @@ -1309,6 +1336,13 @@ EOF @current_column = 0 end + def create_temporary_file(key, content) + file = Tempfile.new("groonga-test-#{key}") + file.print(content) + file.close + yield(file) + end + def guess_term_width Integer(ENV["COLUMNS"] || ENV["TERM_WIDTH"] || 79) rescue ArgumentError @@ -1340,20 +1374,15 @@ EOF def pass_test(worker, result) report_test_result(result, worker.status) - puts end def fail_test(worker, result) report_test_result(result, worker.status) - puts - puts("=" * @term_width) - report_diff(result.expected, result.actual) - puts("=" * @term_width) + report_failure(worker, result) end def no_check_test(worker, result) report_test_result(result, worker.status) - puts puts(result.actual) end @@ -1370,31 +1399,6 @@ EOF puts report_summary(result) end - - private - def report_test_result(result, label) - message = " %10.4fs [%s]" % [result.elapsed_time, label] - message = message.rjust(@term_width - @current_column) if @term_width > 0 - print(message) - end - - def report_diff(expected, actual) - create_temporary_file("expected", expected) do |expected_file| - create_temporary_file("actual", actual) do |actual_file| - diff_options =****@teste*****_options.dup - diff_options.concat(["--label", "(actual)", actual_file.path, - "--label", "(expected)", expected_file.path]) - system(@tester.diff, *diff_options) - end - end - end - - def create_temporary_file(key, content) - file = Tempfile.new("groonga-test-#{key}") - file.print(content) - file.close - yield(file) - end end class InplaceReporter < BaseReporter @@ -1424,7 +1428,13 @@ EOF end def fail_test(worker, result) - redraw + redraw do + report_marker + puts("[#{worker.id}] #{worker.suite_name}") + print(" #{worker.test_name}") + report_test_result(result, worker.status) + report_failure(result) + end end def no_check_test(worker, result) @@ -1474,7 +1484,11 @@ EOF def redraw @mutex.synchronize do draw - up_n_lines(n_using_lines) + if block_given? + yield + else + up_n_lines(n_using_lines) + end end end -------------- next part -------------- HTML����������������������������...Download