`make test-all COVERAGE=true` supports directory-separated build

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63097 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
mame 2018-04-05 01:05:16 +00:00
Родитель 97d610becd
Коммит 4a7bf2efe7
1 изменённых файлов: 16 добавлений и 1 удалений

Просмотреть файл

@ -70,13 +70,28 @@ def invoke_simplecov_formatter
res = Marshal.load(File.binread(TEST_COVERAGE_DATA_FILE))
simplecov_result = {}
base_dir = File.dirname(__dir__)
cur_dir = Dir.pwd
res.each do |path, cov|
next unless path.start_with?(base_dir)
next unless path.start_with?(base_dir) || path.start_with?(cur_dir)
next if path.start_with?(File.join(base_dir, "test"))
simplecov_result[path] = cov[:lines]
end
a, b = base_dir, cur_dir
until a == b
if a.size > b.size
a = File.dirname(a)
else
b = File.dirname(b)
end
end
root_dir = a
SimpleCov.configure do
root(root_dir)
coverage_dir(File.join(cur_dir, "coverage"))
end
res = SimpleCov::Result.new(simplecov_result)
res.command_name = "Ruby's `make test-all`"
SimpleCov::Formatter::HTMLFormatter.new.format(res)