Class: Test::Unit::Collector::Load

Inherits:
Object
  • Object
show all
Includes:
Test::Unit::Collector
Defined in:
lib/test/unit/collector/load.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Test::Unit::Collector

#add_suite, #filter=, #include?, #sort

Constructor Details

#initializeLoad

Returns a new instance of Load.



14
15
16
17
18
19
20
21
# File 'lib/test/unit/collector/load.rb', line 14

def initialize
  super
  @system_excludes = [/~\z/, /\A\.\#/]
  @system_directory_excludes = [/\A(?:CVS|\.svn)\z/]
  @patterns = [/\Atest[_\-].+\.rb\z/m]
  @excludes = []
  @base = nil
end

Instance Attribute Details

#baseObject

Returns the value of attribute base.



12
13
14
# File 'lib/test/unit/collector/load.rb', line 12

def base
  @base
end

#excludesObject (readonly)

Returns the value of attribute excludes.



12
13
14
# File 'lib/test/unit/collector/load.rb', line 12

def excludes
  @excludes
end

#patternsObject (readonly)

Returns the value of attribute patterns.



12
13
14
# File 'lib/test/unit/collector/load.rb', line 12

def patterns
  @patterns
end

Instance Method Details

#collect(*froms) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/test/unit/collector/load.rb', line 28

def collect(*froms)
  add_load_path(@base) do
    froms = ["."] if froms.empty?
    test_suites = froms.collect do |from|
      test_suite = collect_recursive(resolve_path(from), find_test_cases)
      test_suite = nil if test_suite.tests.empty?
      test_suite
    end.compact

    if test_suites.size > 1
      test_suite = TestSuite.new("[#{froms.join(', ')}]")
      sort(test_suites).each do |sub_test_suite|
        test_suite << sub_test_suite
      end
      test_suite
    else
      test_suites.first
    end
  end
end

#find_test_cases(ignore = []) ⇒ Object



49
50
51
52
53
54
55
56
# File 'lib/test/unit/collector/load.rb', line 49

def find_test_cases(ignore=[])
  test_cases = []
  TestCase::DESCENDANTS.each do |test_case|
    test_cases << test_case unless ignore.include?(test_case)
  end
  ignore.concat(test_cases)
  test_cases
end