From: "U.Nakamura" Date: 2004-11-16T11:44:15+09:00 Subject: [ruby-dev:24865] [patch] test/unitで特定のtestを実行しないオプション こんにちは、なかむら(う)です。 以前、[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