2016-06-30 14:08:01 +00:00
|
|
|
#!/usr/bin/env ruby
|
|
|
|
begin
|
|
|
|
load File.expand_path('../spring', __FILE__)
|
|
|
|
rescue LoadError => e
|
|
|
|
raise unless e.message.include?('spring')
|
|
|
|
end
|
|
|
|
|
|
|
|
require 'simplecov'
|
|
|
|
|
|
|
|
def read(file)
|
|
|
|
return unless File.exist?(file)
|
|
|
|
data = File.read(file)
|
|
|
|
return if data.nil? || data.length < 2
|
|
|
|
data
|
|
|
|
end
|
|
|
|
|
|
|
|
def load(file)
|
|
|
|
begin
|
|
|
|
JSON.parse(read(file))
|
|
|
|
rescue
|
|
|
|
{}
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def files
|
|
|
|
Dir.glob(File.join(SimpleCov.coverage_path, '*', '.resultset.json'))
|
|
|
|
end
|
|
|
|
|
|
|
|
def resultsfiles
|
|
|
|
files.map { |file| load(file) }
|
|
|
|
end
|
|
|
|
|
|
|
|
def resultsets
|
|
|
|
resultsfiles.reduce({}, :merge)
|
|
|
|
end
|
|
|
|
|
|
|
|
def all_results
|
|
|
|
results = []
|
|
|
|
resultsets.each do |command_name, data|
|
|
|
|
result = SimpleCov::Result.from_hash(command_name => data)
|
|
|
|
# Only add result if the timeout is above the configured threshold
|
|
|
|
if (Time.now - result.created_at) < SimpleCov.merge_timeout
|
|
|
|
results << result
|
|
|
|
end
|
|
|
|
end
|
|
|
|
results
|
|
|
|
end
|
|
|
|
|
|
|
|
def merged_result
|
|
|
|
merged = {}
|
|
|
|
results = all_results
|
|
|
|
results.each do |result|
|
2016-07-04 12:58:51 +00:00
|
|
|
merged = result.original_result.merge_resultset(merged)
|
2016-06-30 14:08:01 +00:00
|
|
|
end
|
|
|
|
result = SimpleCov::Result.new(merged)
|
|
|
|
# Specify the command name
|
|
|
|
result.command_name = results.map(&:command_name).sort.join(", ")
|
|
|
|
result
|
|
|
|
end
|
|
|
|
|
2016-06-30 17:47:40 +00:00
|
|
|
# Ignore CI environment
|
|
|
|
ENV['CI'] = nil
|
|
|
|
ENV['CI_BUILD_NAME'] = nil
|
|
|
|
|
2016-06-30 17:04:00 +00:00
|
|
|
require_relative '../spec/simplecov_env'
|
2016-06-30 14:08:01 +00:00
|
|
|
|
|
|
|
merged_result.format!
|