[ruby-list:41835] Re: Runit の c2t.rb の後継ツールは?

From: rubikitch <rubikitch@...>
Date: 2006-02-20 08:57:43 UTC
List: ruby-list #41835
From: 植田裕之 <ueda@netforest.ad.jp>
Subject: [ruby-list:41834] Runit の c2t.rb の後継ツールは?
Date: Mon, 20 Feb 2006 17:33:26 +0900

るびきちです。

>  で、ruby 1.8 からは標準添付されている Test::Unit で同様なことが出来る
> ことはわかったのですが、Runit にある c2t.rb に対応するようなものは無いの
> でしょうか?

c2t.rbを改造して使っていました。
近頃はメソッドベースよりもシナリオベースでテストを書くことが多いので
ほとんど使っていません。

テンプレートを書くのが面倒ならば、エディタの機能で挿入したほうがいいか
もしれません。

--- /usr/local/bin/c2t.rb	2002-12-23 19:40:08.000000000 +0900
+++ c2t.rb	2006-02-20 17:51:58.000000000 +0900
@@ -57,7 +57,7 @@
   def def_test_method(m)
     assert_str = ''
     if @insert_assertion
-      assert_str = 'assert_fail("untested")'
+      assert_str = 'flunk("untested")'
     end
     <<STR
 
@@ -72,12 +72,12 @@
   end
 
   def def_test_class(klass)
-    "class #{test_class_name(klass)} < RUNIT::TestCase"
+    "class #{test_class_name(klass)} < Test::Unit::TestCase"
   end
 
   def def_test_singleton_methods(klass)
     str = ''
-    klass.singleton_methods.collect{|m|
+    klass.singleton_methods(nil).collect{|m|
       test_singleton_method_name(m)
     }.sort.each do |m|
       str.concat def_test_method(m)
@@ -87,7 +87,7 @@
 
   def def_test_initialize_method(klass)
     str = ''
-    if klass.private_instance_methods.include?("initialize")
+    if klass.private_instance_methods(nil).include?("initialize")
       str.concat def_test_method( test_singleton_method_name("new"))
     end
     str
@@ -95,7 +95,7 @@
 
   def def_test_instance_methods(klass)
     str = ''
-    klass.instance_methods.collect{|f|
+    klass.instance_methods(nil).collect{|f|
       test_method_name(f)
     }.sort.each do |f|
       str.concat def_test_method(f)
@@ -126,12 +126,14 @@
 
   def require_frame
     <<STR
-require 'rubyunit'
+require 'test/unit'
 STR
   end
 
   def require_target(file)
-    "require '#{file}'"
+    s = "$:.unshift '.'\n"
+    s << "$:.unshift '..'\n"
+    s << "require '#{file}'"
   end
 
   def create_frame(klass, file=nil, do_insert_assert=true)
@@ -156,7 +158,7 @@
 def print_usage
   print <<USAGE_EOF
 USAGE : #{File.basename($0)} [(--na|--noassertion)] class [file]
-  --na   : do not insert assert_fail in each test methods.
+  --na   : do not insert flunk in each test methods.
   --noassertion : same as '--na'
 USAGE_EOF
 end

--
rubikitch
http://www.rubyist.net/~rubikitch/
 

In This Thread