Fix SimpleCov report merging
This commit is contained in:
parent
070a96f54f
commit
3dac444ca1
2 changed files with 38 additions and 2 deletions
|
@ -74,7 +74,8 @@ update-coverage:
|
|||
artifacts:
|
||||
expire_in: 31d
|
||||
paths:
|
||||
- coverage/
|
||||
- coverage/index.html
|
||||
- coverage/assets/
|
||||
|
||||
# Execute all testing suites
|
||||
|
||||
|
|
|
@ -46,11 +46,42 @@ def all_results
|
|||
results
|
||||
end
|
||||
|
||||
def merge_resultset(a1, a2)
|
||||
return a1 || [] unless a2
|
||||
return a2 || [] unless a1
|
||||
|
||||
new_array = a1.dup
|
||||
a2.each_with_index do |element, i|
|
||||
if element.nil? && new_array[i].nil?
|
||||
new_array[i] = nil
|
||||
elsif element.nil? && new_array[i] == 0 || element == 0 && new_array[i].nil?
|
||||
new_array[i] = nil
|
||||
else
|
||||
local_value = element || 0
|
||||
other_value = new_array[i] || 0
|
||||
new_array[i] = local_value + other_value
|
||||
end
|
||||
end
|
||||
new_array
|
||||
end
|
||||
|
||||
def merge_hashes(h1, h2)
|
||||
new_resultset = {}
|
||||
(h1.keys + h2.keys).each do |filename|
|
||||
new_resultset[filename] = []
|
||||
end
|
||||
|
||||
new_resultset.each_key do |filename|
|
||||
new_resultset[filename] = merge_resultset(h1[filename], h2[filename])
|
||||
end
|
||||
new_resultset
|
||||
end
|
||||
|
||||
def merged_result
|
||||
merged = {}
|
||||
results = all_results
|
||||
results.each do |result|
|
||||
merged = result.original_result.merge_resultset(merged)
|
||||
merged = merge_hashes(result.original_result, merged)
|
||||
end
|
||||
result = SimpleCov::Result.new(merged)
|
||||
# Specify the command name
|
||||
|
@ -58,6 +89,10 @@ def merged_result
|
|||
result
|
||||
end
|
||||
|
||||
# Ignore CI environment
|
||||
ENV['CI'] = nil
|
||||
ENV['CI_BUILD_NAME'] = nil
|
||||
|
||||
require_relative '../spec/simplecov_env'
|
||||
|
||||
merged_result.format!
|
||||
|
|
Loading…
Reference in a new issue