class Test::Unit::TestSuite
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.
Constants
- FINISHED
- FINISHED_OBJECT
- STARTED
- STARTED_OBJECT
Attributes
Test
suite that has higher priority is ran prior to test suites that have lower priority.
Public Class Methods
Creates a new TestSuite
with the given name.
# File test-unit-3.6.4/lib/test/unit/testsuite.rb, line 34 def initialize(name="Unnamed TestSuite", test_case=nil) @name = name @tests = [] @test_case = test_case @priority = 0 @start_time = nil @elapsed_time = nil end
Public Instance Methods
Adds the test to the suite.
# File test-unit-3.6.4/lib/test/unit/testsuite.rb, line 64 def <<(test) @tests << test self end
It’s handy to be able to compare TestSuite
instances.
# File test-unit-3.6.4/lib/test/unit/testsuite.rb, line 97 def ==(other) return false unless(other.kind_of?(self.class)) return false unless(@name == other.name) @tests == other.tests end
# File test-unit-3.6.4/lib/test/unit/testsuite.rb, line 69 def delete(test) @tests.delete(test) end
# File test-unit-3.6.4/lib/test/unit/testsuite.rb, line 73 def delete_tests(tests) @tests -= tests end
# File test-unit-3.6.4/lib/test/unit/testsuite.rb, line 86 def empty? size.zero? end
# File test-unit-3.6.4/lib/test/unit/testsuite.rb, line 43 def parallel_safe? return true if @test_case.nil? @test_case.parallel_safe? end
# File test-unit-3.6.4/lib/test/unit/testsuite.rb, line 103 def passed? @tests.all?(&:passed?) end
Runs the tests and/or suites contained in this TestSuite
.
# File test-unit-3.6.4/lib/test/unit/testsuite.rb, line 50 def run(result, runner: nil, &progress_block) runner ||= TestSuiteRunner runner.new(self).run(result) do |event, *args| case event when STARTED @start_time = Time.now when FINISHED @elapsed_time = Time.now - @start_time end yield(event, *args) end end
Returns 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-3.6.4/lib/test/unit/testsuite.rb, line 80 def size total_size = 0 @tests.each { |test| total_size += test.size } total_size end
Overridden to return the name given the suite at creation.
# File test-unit-3.6.4/lib/test/unit/testsuite.rb, line 92 def to_s @name end