[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]