Module: Minitest::Suite
- Defined in:
- lib/minitest/suite.rb,
lib/minitest/suite/version.rb
Defined Under Namespace
Classes: Error, PartialArrayProxy, Registration
Constant Summary
collapse
- VERSION =
"0.0.3"
Class Method Summary
collapse
Class Method Details
.filter_runnables(runnables) ⇒ Object
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
# File 'lib/minitest/suite.rb', line 42
def self.filter_runnables(runnables)
if (only = ENV["MINITEST_SUITE_ONLY"])
suites = only.gsub(/\s+/, "").split(",").map(&:to_sym)
selected_tests = registrations.select { |r| suites.include?(r.suite) }
.map(&:test)
runnables.select { |r| selected_tests.include?(r) }
elsif (except = ENV["MINITEST_SUITE_EXCEPT"])
suites = except.gsub(/\s+/, "").split(",").map(&:to_sym)
excepted_tests = registrations.select { |r| suites.include?(r.suite) }
.map(&:test)
runnables.reject { |r| excepted_tests.include?(r) }
else
runnables
end
end
|
.order ⇒ Object
30
31
32
|
# File 'lib/minitest/suite.rb', line 30
def self.order
@@suite_order ||= []
end
|
.order=(suite_order) ⇒ Object
21
22
23
24
25
26
27
28
|
# File 'lib/minitest/suite.rb', line 21
def self.order=(suite_order)
if !suite_order.is_a?(Array) ||
suite_order.any? { |suite| !suite.is_a?(Symbol) }
raise Error.new("Minitest::Suite.order must be an array of Symbol suite names")
else
@@suite_order = suite_order.uniq
end
end
|
.register(suite_name:, test_class:) ⇒ Object
9
10
11
12
13
14
15
16
17
18
19
|
# File 'lib/minitest/suite.rb', line 9
def self.register(suite_name:, test_class:)
if !suite_name.is_a?(Symbol)
raise Error.new("suite_name must be a Symbol")
elsif !test_class.ancestors.include?(Minitest::Test)
raise Error.new("test_class must be a Minitest::Test")
elsif (conflict = registrations.find { |r| r.test == test_class && r.suite != suite_name })
raise Error.new("#{conflict.test.name || "Class"} is already registered to the #{conflict.suite.inspect} suite")
elsif registrations.none? { |r| r.test == test_class && r.suite == suite_name }
registrations << Registration.new(suite: suite_name, test: test_class)
end
end
|
.registration_for(test_class) ⇒ Object
58
59
60
61
62
63
64
65
66
67
68
|
# File 'lib/minitest/suite.rb', line 58
def self.registration_for(test_class)
first_registered_ancestor = test_class.ancestors.find { |ancestor|
registrations.any? { |r| r.test == ancestor }
}
if first_registered_ancestor
Registration.new(
test: test_class,
suite: registrations.find { |r| r.test == first_registered_ancestor }.suite
)
end
end
|
.registrations ⇒ Object
34
35
36
|
# File 'lib/minitest/suite.rb', line 34
def self.registrations
@@registrations ||= reset
end
|
.reset ⇒ Object
38
39
40
|
# File 'lib/minitest/suite.rb', line 38
def self.reset
@@registrations = []
end
|