diff --git a/ChangeLog b/ChangeLog index 3106fed4b0..c38c2d634f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +Tue Sep 6 21:06:49 2011 Shota Fukumori + + * lib/test/unit.rb (_run_suites): Now reports are written the + following order: Skip, Failure, Error. [Feature #5282] + + * test_sorting.rb: test for above. + + * test4test_sorting.rb: Ditto. + + * lib/test/unit.rb (run): Put RUBY_DESCIPTION before quitting. + [Feature #5282] + Tue Sep 6 21:13:47 2011 Masaya Tarui * win32/Makefile.sub (INSNS): change command line option -Ks to -Ku diff --git a/lib/test/unit.rb b/lib/test/unit.rb index 09708d14df..8d3a726b9b 100644 --- a/lib/test/unit.rb +++ b/lib/test/unit.rb @@ -570,6 +570,8 @@ module Test } end report.reject!{|r| r.start_with? "Skipped:" } if @options[:hide_skip] + report.sort_by!{|r| r.start_with?("Skipped:") ? 0 : \ + (r.start_with?("Failure:") ? 1 : 2) } result end @@ -599,6 +601,12 @@ module Test raise @interrupt if @interrupt result end + + def run(*args) + result = super + puts "\nruby -v: #{RUBY_DESCRIPTION}" + result + end end class AutoRunner diff --git a/test/testunit/test4test_sorting.rb b/test/testunit/test4test_sorting.rb new file mode 100644 index 0000000000..1f7f4a323e --- /dev/null +++ b/test/testunit/test4test_sorting.rb @@ -0,0 +1,15 @@ +require 'test/unit' + +class TestForTestHideSkip < Test::Unit::TestCase + def test_c + skip "do nothing" + end + + def test_b + assert_equal true, false + end + + def test_a + raise + end +end diff --git a/test/testunit/test_sorting.rb b/test/testunit/test_sorting.rb new file mode 100644 index 0000000000..ca85db57ea --- /dev/null +++ b/test/testunit/test_sorting.rb @@ -0,0 +1,17 @@ +require 'test/unit' + +class TestTestUnitSorting < Test::Unit::TestCase + def test_sorting + test_out, o = IO.pipe + spawn(*@options[:ruby], "#{File.dirname(__FILE__)}/test4test_sorting.rb", + out: o, err: o) + o.close + result = test_out.read + + assert_match(/^ 1\) Skipped:/, result) + assert_match(/^ 2\) Failure:/, result) + assert_match(/^ 3\) Error:/, result) + + test_out.close + end +end