こんにちは、なかむら(う)です。

以前、[ruby-core:3363]で、指定したテストを実行リストから除く、
というパッチを投げたのですが、英語がまずかったせいかパッチが
まずかったせいか、誰にも反応をもらえませんでした。
きっとパッチが悪かったんじゃなくて英語が悪かったに違いない、
と一縷の望みを託して、こちらでご相談させてください。

なんでこんなパッチが必要になるかというと、なんか致命的な問題
を指摘するテストがcommitされた場合、その問題についてはよくわ
かってて、たぶん他の誰かが作業中だから、自分はそれ以外のテス
トを実行したい、と思っても、そのテストのせいで他のテストを実
行することができない場合がままある、のが理由です。

今回、lib/test/unit/autorunner.rbがちょっと変更になったような
ので、それに追従した最新のパッチを以下につけておきます。

Index: lib/test/unit/autorunner.rb =================================================================== RCS file: /home/cvs/ruby/lib/test/unit/autorunner.rb,v retrieving revision 1.9 diff -u -1 -p -r1.9 autorunner.rb --- lib/test/unit/autorunner.rb 16 Nov 2004 02:19:17 -0000 1.9 +++ lib/test/unit/autorunner.rb 16 Nov 2004 02:31:33 -0000 @@ -58,2 +58,3 @@ module Test c.pattern = r.pattern if(r.pattern) + c.exclude = r.exclude if(r.exclude) c.collect(*(r.to_run.empty? ? ['.'] : r.to_run)) @@ -63,3 +64,3 @@ module Test attr_reader :suite - attr_accessor :output_level, :filters, :to_run, :pattern + attr_accessor :output_level, :filters, :to_run, :pattern, :exclude attr_writer :runner, :collector @@ -114,2 +115,7 @@ module Test end + + o.on('-x', '--exclude=PATTERN', Regexp, + "Ignore files to collect against PATTERN.") do |e| + @exclude = e + end end Index: lib/test/unit/collector/dir.rb =================================================================== RCS file: /home/cvs/ruby/lib/test/unit/collector/dir.rb,v retrieving revision 1.5 diff -u -1 -p -r1.5 dir.rb --- lib/test/unit/collector/dir.rb 9 Jan 2004 04:26:05 -0000 1.5 +++ lib/test/unit/collector/dir.rb 16 Nov 2004 02:31:33 -0000 @@ -9,3 +9,3 @@ module Test - attr_writer :pattern + attr_writer :pattern, :exclude @@ -18,2 +18,3 @@ module Test @pattern = /\Atest_.*\.rb\Z/m + @exclude = nil end @@ -57,2 +58,3 @@ module Test (next unless(@pattern =~ e)) if(@pattern) + (next if(@exclude =~ e)) if(@exclude) collect_file(e_name, sub_suites, already_gathered)
それでは。 -- U.Nakamura <usa / garbagecollect.jp>