ruby-changes:24433
From: sorah <ko1@a...>
Date: Sat, 21 Jul 2012 14:12:42 +0900 (JST)
Subject: [ruby-changes:24433] sorah:r36484 (trunk): * lib/test/unit.rb: warn when test_* method is redefined.
sorah 2012-07-21 14:12:32 +0900 (Sat, 21 Jul 2012) New Revision: 36484 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=36484 Log: * lib/test/unit.rb: warn when test_* method is redefined. Patch by mame (Yusuke Endoh). [Feature #2643] [ruby-core:27790] * test/testunit/test_redefinition.rb: Test for above. * test/testunit/test4test_redefinition.rb: Ditto. Added files: trunk/test/testunit/test4test_redefinition.rb trunk/test/testunit/test_redefinition.rb Modified files: trunk/ChangeLog trunk/lib/test/unit/testcase.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 36483) +++ ChangeLog (revision 36484) @@ -1,3 +1,12 @@ +Sat Jul 21 14:06:41 2012 Shota Fukumori <sorah@t...> + + * lib/test/unit.rb: warn when test_* method is redefined. + Patch by mame (Yusuke Endoh). [Feature #2643] [ruby-core:27790] + + * test/testunit/test_redefinition.rb: Test for above. + + * test/testunit/test4test_redefinition.rb: Ditto. + Sat Jul 21 08:41:14 2012 Eric Hodel <drbrain@s...> * lib/logger.rb: Updated example in Logger comment to match other Index: lib/test/unit/testcase.rb =================================================================== --- lib/test/unit/testcase.rb (revision 36483) +++ lib/test/unit/testcase.rb (revision 36484) @@ -20,6 +20,17 @@ def self.test_order :sorted end + + Methods = {} + + def self.method_added(name) + return unless name.to_s[/\Atest_/] + Methods[self] ||= {} + if Methods[self][name] + warn("test/unit warning: method #{ self }##{ name } is redefined") + end + Methods[self][name] = true + end end end end Index: test/testunit/test_redefinition.rb =================================================================== --- test/testunit/test_redefinition.rb (revision 0) +++ test/testunit/test_redefinition.rb (revision 36484) @@ -0,0 +1,13 @@ +require 'test/unit' + +class TestHideSkip < Test::Unit::TestCase + def test_hideskip + test_out, o = IO.pipe + spawn(*@options[:ruby], "#{File.dirname(__FILE__)}/test4test_redefinition.rb", out: File::NULL, err: o) + o.close + + assert_match /^test\/unit warning: method TestForTestRedefinition#test_redefinition is redefined$/, + test_out.read + test_out.close + end +end Index: test/testunit/test4test_redefinition.rb =================================================================== --- test/testunit/test4test_redefinition.rb (revision 0) +++ test/testunit/test4test_redefinition.rb (revision 36484) @@ -0,0 +1,11 @@ +require 'test/unit' + +class TestForTestRedefinition < Test::Unit::TestCase + def test_redefinition + skip "do nothing (1)" + end + + def test_redefinition + skip "do nothing (2)" + end +end -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/