BigW Consortium Gitlab

simplecov_env.rb 1.27 KB
Newer Older
1
require 'simplecov'
2
require 'active_support/core_ext/numeric/time'
3

4 5
module SimpleCovEnv
  extend self
6

7 8 9 10 11 12 13
  def start!
    return unless ENV['SIMPLECOV']

    configure_profile
    configure_job

    SimpleCov.start
14
  end
15

16 17 18 19 20 21 22 23 24 25 26 27 28 29
  def configure_job
    SimpleCov.configure do
      if ENV['CI_BUILD_NAME']
        coverage_dir "coverage/#{ENV['CI_BUILD_NAME']}"
        command_name ENV['CI_BUILD_NAME']
      end

      if ENV['CI']
        SimpleCov.at_exit do
          # In CI environment don't generate formatted reports
          # Only generate .resultset.json
          SimpleCov.result
        end
      end
30
    end
31
  end
32

33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
  def configure_profile
    SimpleCov.configure do
      load_profile 'test_frameworks'
      track_files '{app,lib}/**/*.rb'

      add_filter '/vendor/ruby/'
      add_filter 'config/initializers/'

      add_group 'Controllers', 'app/controllers'
      add_group 'Models', 'app/models'
      add_group 'Mailers', 'app/mailers'
      add_group 'Helpers', 'app/helpers'
      add_group 'Workers', %w(app/jobs app/workers)
      add_group 'Libraries', 'lib'
      add_group 'Services', 'app/services'
      add_group 'Finders', 'app/finders'
      add_group 'Uploaders', 'app/uploaders'
      add_group 'Validators', 'app/validators'

52
      merge_timeout 365.days
53 54
    end
  end
55
end