Patch SimpleCov to reuse code for coverage merger
This commit is contained in:
parent
be3ad008aa
commit
8e5e668e1a
|
@ -1,61 +1,29 @@
|
||||||
#!/usr/bin/env ruby
|
#!/usr/bin/env ruby
|
||||||
begin
|
|
||||||
load File.expand_path('../spring', __FILE__)
|
|
||||||
rescue LoadError => e
|
|
||||||
raise unless e.message.include?('spring')
|
|
||||||
end
|
|
||||||
|
|
||||||
require 'simplecov'
|
require 'simplecov'
|
||||||
|
|
||||||
def read(file)
|
module SimpleCov
|
||||||
return unless File.exist?(file)
|
module ResultMerger
|
||||||
data = File.read(file)
|
class << self
|
||||||
return if data.nil? || data.length < 2
|
def resultset_files
|
||||||
data
|
Dir.glob(File.join(SimpleCov.coverage_path, '*', '.resultset.json'))
|
||||||
end
|
end
|
||||||
|
|
||||||
def load(file)
|
def resultset_hashes
|
||||||
begin
|
resultset_files.map do |path|
|
||||||
JSON.parse(read(file))
|
begin
|
||||||
rescue
|
JSON.parse(File.read(path))
|
||||||
{}
|
rescue
|
||||||
end
|
{}
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def files
|
def resultset
|
||||||
Dir.glob(File.join(SimpleCov.coverage_path, '*', '.resultset.json'))
|
resultset_hashes.reduce({}, :merge)
|
||||||
end
|
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
|
||||||
end
|
end
|
||||||
results
|
|
||||||
end
|
|
||||||
|
|
||||||
def merged_result
|
|
||||||
merged = {}
|
|
||||||
results = all_results
|
|
||||||
results.each do |result|
|
|
||||||
merged = result.original_result.merge_resultset(merged)
|
|
||||||
end
|
|
||||||
result = SimpleCov::Result.new(merged)
|
|
||||||
# Specify the command name
|
|
||||||
result.command_name = results.map(&:command_name).sort.join(", ")
|
|
||||||
result
|
|
||||||
end
|
end
|
||||||
|
|
||||||
# Ignore CI environment
|
# Ignore CI environment
|
||||||
|
@ -64,4 +32,4 @@ ENV['CI_BUILD_NAME'] = nil
|
||||||
|
|
||||||
require_relative '../spec/simplecov_env'
|
require_relative '../spec/simplecov_env'
|
||||||
|
|
||||||
merged_result.format!
|
SimpleCov::ResultMerger.merged_result.format!
|
||||||
|
|
Loading…
Reference in New Issue