diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-12-19 02:01:59 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-12-19 02:01:59 +0000 |
commit | 32ea57aa2b8ca590f0e2ee11847b5977c46c87a6 (patch) | |
tree | 9545bad3ed3db7ae2f83ad65cac6f49e4bc57fbc /lib/test | |
parent | ceacc591b627beaa6f60de6359f06856cee3fb74 (diff) |
* lib/test/unit.rb: use standalone runner for -e.
* lib/test/unit/autorunner.rb (Test::Unit::AutoRunner#options): accept
multiple -p and -x options.
* lib/test/unit/collector/dir.rb (Test::Unit::Collector::Dir#recursive_collect):
ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7597 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/test')
-rw-r--r-- | lib/test/unit.rb | 6 | ||||
-rw-r--r-- | lib/test/unit/autorunner.rb | 15 | ||||
-rw-r--r-- | lib/test/unit/collector/dir.rb | 15 |
3 files changed, 28 insertions, 8 deletions
diff --git a/lib/test/unit.rb b/lib/test/unit.rb index 3c0d265b2c..f6f250a5cf 100644 --- a/lib/test/unit.rb +++ b/lib/test/unit.rb @@ -280,4 +280,8 @@ module Test end end -at_exit{exit(Test::Unit::AutoRunner.run($0)) unless($! || Test::Unit.run?)} +at_exit do + unless $! || Test::Unit.run? + exit Test::Unit::AutoRunner.run($0 != "-e" && $0) + end +end diff --git a/lib/test/unit/autorunner.rb b/lib/test/unit/autorunner.rb index b120adec0b..38b0b76ef3 100644 --- a/lib/test/unit/autorunner.rb +++ b/lib/test/unit/autorunner.rb @@ -1,3 +1,4 @@ +require 'test/unit' require 'test/unit/ui/testrunnerutilities' require 'optparse' @@ -55,13 +56,14 @@ module Test require 'test/unit/collector/dir' c = Collector::Dir.new c.filter = r.filters - c.pattern = r.pattern if(r.pattern) + c.pattern.concat(r.pattern) if(r.pattern) + c.exclude.concat(r.exclude) if(r.exclude) c.collect(*(r.to_run.empty? ? ['.'] : r.to_run)) end, } attr_reader :suite - attr_accessor :output_level, :filters, :to_run, :pattern + attr_accessor :output_level, :filters, :to_run, :pattern, :exclude attr_writer :runner, :collector def initialize(standalone) @@ -108,9 +110,16 @@ module Test @to_run.concat(a) end + @pattern = [] o.on('-p', '--pattern=PATTERN', Regexp, "Match files to collect against PATTERN.") do |e| - @pattern = e + @pattern << e + end + + @exclude = [] + o.on('-x', '--exclude=PATTERN', Regexp, + "Ignore files to collect against PATTERN.") do |e| + @exclude << e end end diff --git a/lib/test/unit/collector/dir.rb b/lib/test/unit/collector/dir.rb index 43fd1be718..9342fdecbc 100644 --- a/lib/test/unit/collector/dir.rb +++ b/lib/test/unit/collector/dir.rb @@ -7,7 +7,7 @@ module Test class Dir include Collector - attr_writer :pattern + attr_reader :pattern, :exclude def initialize(dir=::Dir, file=::File, object_space=::ObjectSpace, req=nil) super() @@ -15,7 +15,8 @@ module Test @file = file @object_space = object_space @req = req - @pattern = /\Atest_.*\.rb\Z/m + @pattern = [/\btest_.*\.rb\Z/m] + @exclude = [] end def collect(*from) @@ -51,10 +52,17 @@ module Test next if(e == '.' || e == '..') e_name = @file.join(name, e) if(@file.directory?(e_name)) + next if /\ACVS\z/ =~ e sub_suite = recursive_collect(e_name, already_gathered) sub_suites << sub_suite unless(sub_suite.empty?) else - (next unless(@pattern =~ e)) if(@pattern) + next if /~\z/ =~ e_name or /\A\.\#/ =~ e + if @pattern and !@pattern.empty? + next unless @pattern.any? {|pat| pat =~ e_name} + end + if @exclude and !@exclude.empty? + next if @exclude.any? {|pat| pat =~ e_name} + end collect_file(e_name, sub_suites, already_gathered) end end @@ -76,7 +84,6 @@ module Test require(name) end find_test_cases(already_gathered).each{|t| add_suite(suites, t.suite)} - rescue LoadError, SystemExit ensure $:.replace(loadpath) end |