Sha256: 807051d2f2af6e56735baa8062e7a262c9746955ce0e13d652581e02fcc2dca5

Contents?: true

Size: 1.1 KB

Versions: 11

Compression:

Stored size: 1.1 KB

Contents

# frozen_string_literal: true
# Borrowed from https://github.com/pulibrary/figgy/blob/master/scripts/combine_coverage.rb
require 'active_support/inflector'
require 'simplecov'

class SimpleCovHelper
  def self.report_coverage(base_dir: './coverage_results')
    min_cov = ENV['MINIMUM_COVERAGE'] || 100
    SimpleCov.configure do
      minimum_coverage(min_cov.to_i)
    end
    new(base_dir: base_dir).merge_results
  end

  attr_reader :base_dir

  def initialize(base_dir:)
    @base_dir = base_dir
  end

  def all_results
    Dir["#{base_dir}/.resultset*.json"]
  end

  def merge_results
    results = all_results.map { |file| SimpleCov::Result.from_hash(JSON.parse(File.read(file))) }
    results = SimpleCov::ResultMerger.merge_results(*results)
    results.format!
    covered_percent = results.covered_percent.round(2)
    return unless covered_percent < SimpleCov.minimum_coverage
    $stderr.printf("Coverage (%.2f%%) is below the expected minimum coverage (%.2f%%).\n", covered_percent, SimpleCov.minimum_coverage)
    Kernel.exit SimpleCov::ExitCodes::MINIMUM_COVERAGE
  end
end

SimpleCovHelper.report_coverage

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
geoblacklight-3.7.0 bin/coverage.rb
geoblacklight-3.6.0 bin/coverage.rb
geoblacklight-3.5.0 bin/coverage.rb
geoblacklight-4.0.0.pre.alpha.3 bin/coverage.rb
geoblacklight-4.0.0.pre.alpha.2 bin/coverage.rb
geoblacklight-4.0.0.pre.alpha.1 bin/coverage.rb
geoblacklight-4.0.0.pre.alpha bin/coverage.rb
geoblacklight-3.4.0 bin/coverage.rb
geoblacklight-3.3.1 bin/coverage.rb
geoblacklight-3.3.0 bin/coverage.rb
geoblacklight-3.2.0 bin/coverage.rb