Fix SimpleCov report merging

This commit is contained in:
Kamil Trzcinski 2016-06-30 19:47:40 +02:00 committed by Grzegorz Bizon
parent 070a96f54f
commit 3dac444ca1
2 changed files with 38 additions and 2 deletions

View file

@ -74,7 +74,8 @@ update-coverage:
artifacts:
expire_in: 31d
paths:
- coverage/
- coverage/index.html
- coverage/assets/
# Execute all testing suites

View file

@ -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!