frozenstringliteral: true

December 19, 2018 ยท View on GitHub

#!/usr/bin/env ruby

frozen_string_literal: true

require 'simplecov' require 'simplecov-lcov'

puts('Merging coverage results from parallel CircleCI tests containers into a single LCOV report...')

results = [] Dir['/home/circleci/rspec/*.resultset.json'].each do |path| resultset = JSON.parse(File.read(path)) resultset.each do |_, data| cmd = File.basename(path) results << SimpleCov::Result.from_hash(cmd => data) end print '.' end puts

merged_result = SimpleCov::ResultMerger.merge_results(*results)

SimpleCov::Formatter::LcovFormatter.config.report_with_single_file = true SimpleCov::Formatter::LcovFormatter.config.single_report_path = ARGV[0] || 'coverage.lcov' SimpleCov::Formatter::LcovFormatter.new.format(merged_result)

puts("Done! LCOV saved to #{SimpleCov::Formatter::LcovFormatter.config.single_report_path}")