aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog12
-rw-r--r--lib/test/unit.rb8
-rw-r--r--test/testunit/test4test_sorting.rb15
-rw-r--r--test/testunit/test_sorting.rb17
4 files changed, 52 insertions, 0 deletions
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 <sorah@tubusu.net>
+
+ * 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 <tarui@ruby-lang.org>
* 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