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 TestSuitewith the given name.
Instance Attribute Summary
- #elapsed_time readonly
- #empty? ⇒ Boolean readonly
- #name readonly
- #parallel_safe? ⇒ Boolean readonly
- #passed? ⇒ Boolean readonly
- 
    
      #priority  
    
    rw
    ::Testsuite 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 TestSuiteinstances.
- #delete(test)
- #delete_tests(tests)
- 
    
      #run(result, runner_class: 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_class: 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_class: nil, &progress_block) runner_class ||= TestSuiteRunner runner_class.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