Class: Test::Unit::TestSuite
Relationships & Source Files | |
Inherits: | Object |
Defined in: | lib/test/unit/testsuite.rb |
Overview
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.
Constant Summary
-
FINISHED =
# File 'lib/test/unit/testsuite.rb', line 30name + "::FINISHED"
-
FINISHED_OBJECT =
# File 'lib/test/unit/testsuite.rb', line 31name + "::FINISHED::OBJECT"
-
STARTED =
# File 'lib/test/unit/testsuite.rb', line 28name + "::STARTED"
-
STARTED_OBJECT =
# File 'lib/test/unit/testsuite.rb', line 29name + "::STARTED::OBJECT"
Class Method Summary
-
.new(name = "Unnamed TestSuite", test_case = nil) ⇒ TestSuite
constructor
Creates a new
TestSuite
with the given name.
Instance Attribute Summary
- #elapsed_time readonly
- #empty? ⇒ Boolean readonly
- #name readonly
- #parallel_safe? ⇒ Boolean readonly
- #passed? ⇒ Boolean readonly
-
#priority
rw
::Test
suite that has higher priority is ran prior to test suites that have lower priority. - #start_time readonly
- #test_case readonly
- #tests readonly
Instance Method Summary
-
#<<(test)
Adds the test to the suite.
-
#==(other)
It’s handy to be able to compare
TestSuite
instances. - #delete(test)
- #delete_tests(tests)
-
#run(result, runner: nil, &progress_block)
Runs the tests and/or suites contained in this
TestSuite
. -
#size
Returns the rolled up number of tests in this suite; i.e.
-
#to_s
Overridden to return the name given the suite at creation.
Constructor Details
.new(name = "Unnamed TestSuite", test_case = nil) ⇒ TestSuite
Creates a new TestSuite
with the given name.
Instance Attribute Details
#elapsed_time (readonly)
[ GitHub ]# File 'lib/test/unit/testsuite.rb', line 22
attr_reader :name, :tests, :test_case, :start_time, :elapsed_time
#empty? ⇒ Boolean
(readonly)
[ GitHub ]
# File 'lib/test/unit/testsuite.rb', line 86
def empty? size.zero? end
#name (readonly)
[ GitHub ]# File 'lib/test/unit/testsuite.rb', line 22
attr_reader :name, :tests, :test_case, :start_time, :elapsed_time
#parallel_safe? ⇒ Boolean
(readonly)
[ GitHub ]
# File 'lib/test/unit/testsuite.rb', line 43
def parallel_safe? return true if @test_case.nil? @test_case.parallel_safe? end
#passed? ⇒ Boolean
(readonly)
[ GitHub ]
# File 'lib/test/unit/testsuite.rb', line 103
def passed? @tests.all?(&:passed?) end
#priority (rw)
::Test
suite that has higher priority is ran prior to test suites that have lower priority.
# File 'lib/test/unit/testsuite.rb', line 26
attr_accessor :priority
#start_time (readonly)
[ GitHub ]# File 'lib/test/unit/testsuite.rb', line 22
attr_reader :name, :tests, :test_case, :start_time, :elapsed_time
#test_case (readonly)
[ GitHub ]# File 'lib/test/unit/testsuite.rb', line 22
attr_reader :name, :tests, :test_case, :start_time, :elapsed_time
#tests (readonly)
[ GitHub ]# File 'lib/test/unit/testsuite.rb', line 22
attr_reader :name, :tests, :test_case, :start_time, :elapsed_time
Instance Method Details
#<<(test)
Adds the test to the suite.
# File 'lib/test/unit/testsuite.rb', line 64
def <<(test) @tests << test self end
#==(other)
It’s handy to be able to compare TestSuite
instances.
#delete(test)
[ GitHub ]# File 'lib/test/unit/testsuite.rb', line 69
def delete(test) @tests.delete(test) end
#delete_tests(tests)
[ GitHub ]#run(result, runner: nil, &progress_block)
Runs the tests and/or suites contained in this TestSuite
.
# File '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
#size
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 'lib/test/unit/testsuite.rb', line 80
def size total_size = 0 @tests.each { |test| total_size += test.size } total_size end
#to_s
Overridden to return the name given the suite at creation.
# File 'lib/test/unit/testsuite.rb', line 92
def to_s @name end