13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
# File 'lib/test/metadata_generator.rb', line 13
def self.generate(directories = nil, tags = nil, filters = nil)
tests_metadata = []
if directories
directories.each do |directory|
Dir.glob("#{MotoApp::DIR}/tests/#{directory}/**/*.rb").each do |test_path|
tests_metadata << Moto::Test::Metadata.new(test_path)
end
end
end
if tags
tests_total = Dir.glob("#{MotoApp::DIR}/tests/**/*.rb")
tests_total.each do |test_path|
metadata = Moto::Test::Metadata.new(test_path)
tests_metadata << metadata unless (tags & metadata.tags).empty?
end
end
tests_metadata.uniq! {|metadata| metadata.test_path}
if filters
filters.each do |filter|
filtered = tests_metadata.select do |metadata|
next if metadata.tags.empty?
filter_matches_any_tag?(filter, metadata.tags) || filter_negation_matches_none_tag?(filter, metadata.tags)
end
tests_metadata &= filtered
end
end
if File.exists?("#{MotoApp::DIR}/lib/initializer.rb")
require("#{MotoApp::DIR}/lib/initializer.rb")
initializer = MotoApp::Lib::Initializer.new
initializer.init
end
return tests_metadata
end
|