A collection of tests which can be run.
Note: It is easy to confuse a TestSuite instance with something that has a static suite method; I know because I have trouble keeping them straight. Think of something that has a suite method as simply providing a way to get a meaningful TestSuite instance.
Creates a new TestSuite with the given name.
# File test/unit/testsuite.rb, line 24 def initialize(name="Unnamed TestSuite") @name = name @tests = [] end
Adds the test to the suite.
# File test/unit/testsuite.rb, line 40 def <<(test) @tests << test self end
It's handy to be able to compare TestSuite instances.
# File test/unit/testsuite.rb, line 69 def ==(other) return false unless(other.kind_of?(self.class)) return false unless(@name == other.name) @tests == other.tests end
# File test/unit/testsuite.rb, line 45 def delete(test) @tests.delete(test) end
Runs the tests and/or suites contained in this TestSuite.
# File test/unit/testsuite.rb, line 31 def run(result, &progress_block) yield(STARTED, name) @tests.each do |test| test.run(result, &progress_block) end yield(FINISHED, name) end
Retuns the rolled up number of tests in this suite; i.e. if the suite contains other suites, it counts the tests within those suites, not the suites themselves.
# File test/unit/testsuite.rb, line 52 def size total_size = 0 @tests.each { |test| total_size += test.size } total_size end