Sha256: 1b32b8aeba6ab4fb5b69abcc5ef42c3d4b1ac7399606d072c458b407ef1b81ed

Contents?: true

Size: 933 Bytes

Versions: 16

Compression:

Stored size: 933 Bytes

Contents

# frozen_string_literal: true

CoverageError = Class.new(StandardError)
desc 'Run all specs with coverage'
task :coverage do
  ENV['COVERAGE'] = 'test'
  require 'json'
  require 'bigdecimal'
  coverage_file = Pathname('coverage/coverage.json')
  old_coverage = ''
  old_percent = 0
  if coverage_file.exist?
    old_coverage = coverage_file.read
    old_percent = BigDecimal(JSON.parse(old_coverage)['metrics']['covered_percent'], 4).to_f
  end

  sh 'ruby test/test_dapr.rb'

  new_coverage = coverage_file.read
  new_percent = BigDecimal(JSON.parse(new_coverage)['metrics']['covered_percent'], 4).to_f
  if new_percent < old_percent
    coverage_file.write old_coverage
    raise CoverageError, "Coverage dropped from #{old_percent}% to #{new_percent}%"
  elsif new_percent > old_percent
    puts "Coverage increased from #{old_percent}% to #{new_percent}%"
  else
    puts "Coverage stayed the same at #{old_percent}%"
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
dapr-0.5.0 tasks/coverage.rake
dapr-0.4.3 tasks/coverage.rake
dapr-0.4.2 tasks/coverage.rake
dapr-0.4.1 tasks/coverage.rake
dapr-0.4.0 tasks/coverage.rake
dapr-0.3.3 tasks/coverage.rake
dapr-0.3.2 tasks/coverage.rake
dapr-0.3.1 tasks/coverage.rake
dapr-0.3.0 tasks/coverage.rake
dapr-0.2.11 tasks/coverage.rake
dapr-0.2.9 tasks/coverage.rake
dapr-0.2.8 tasks/coverage.rake
dapr-0.2.7 tasks/coverage.rake
dapr-0.2.6 tasks/coverage.rake
dapr-0.2.4 tasks/coverage.rake
dapr-0.2.2 tasks/coverage.rake