diff options
author | ntalbott <ntalbott@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-10-03 22:35:19 +0000 |
---|---|---|
committer | ntalbott <ntalbott@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-10-03 22:35:19 +0000 |
commit | 2a15f7b5b7bee2e67ed4743554ba1b983297b66c (patch) | |
tree | 0263d3fa994f5315ae8bd4494e35b2d3c6f793f6 /lib/test | |
parent | ae9e99e764014fad13898578bc7fabefdb951259 (diff) | |
download | ruby-2a15f7b5b7bee2e67ed4743554ba1b983297b66c.tar.gz ruby-2a15f7b5b7bee2e67ed4743554ba1b983297b66c.tar.xz ruby-2a15f7b5b7bee2e67ed4743554ba1b983297b66c.zip |
* lib/test/unit/testsuite.rb: changed #<< to return self, and added
#delete.
* test/testunit/test_testsuite.rb: ditto. Also slightly refactored
#test_size.
* lib/test/unit/collector/objectspace.rb: collector now preserves the
hierarchy of suites.
* test/testunit/collector/test_objectspace.rb: ditto.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@4668 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/test')
-rw-r--r-- | lib/test/unit/collector/objectspace.rb | 11 | ||||
-rw-r--r-- | lib/test/unit/testsuite.rb | 5 |
2 files changed, 13 insertions, 3 deletions
diff --git a/lib/test/unit/collector/objectspace.rb b/lib/test/unit/collector/objectspace.rb index ac79980d7..5a1d29cc1 100644 --- a/lib/test/unit/collector/objectspace.rb +++ b/lib/test/unit/collector/objectspace.rb @@ -15,11 +15,16 @@ module Test def collect(name=NAME) suite = TestSuite.new(name) - tests = [] + sub_suites = [] @source.each_object(Class) do |klass| - tests.concat(klass.suite.tests) if(Test::Unit::TestCase > klass) + if(Test::Unit::TestCase > klass) + sub_suite = klass.suite + to_delete = sub_suite.tests.find_all{|t| !include(t)} + to_delete.each{|t| sub_suite.delete(t)} + sub_suites << sub_suite unless(sub_suite.size == 0) + end end - tests.sort_by{|t| t.name}.each{|test| suite << test if(include(test))} + sub_suites.sort_by{|s| s.name}.each{|s| suite << s} suite end diff --git a/lib/test/unit/testsuite.rb b/lib/test/unit/testsuite.rb index 4ece3257c..b3a704ec6 100644 --- a/lib/test/unit/testsuite.rb +++ b/lib/test/unit/testsuite.rb @@ -39,6 +39,11 @@ module Test # Adds the test to the suite. def <<(test) @tests << test + self + end + + def delete(test) + @tests.delete(test) end # Retuns the rolled up number of tests in this suite; |