1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
require "simplecov"
require "active_support/core_ext/numeric/time"
require_relative "../lib/gitlab/utils"
module SimpleCovEnv
extend self
def start!
return unless ENV["SIMPLECOV"]
configure_profile
configure_job
SimpleCov.start
end
def configure_job
SimpleCov.configure do
if ENV["CI_JOB_NAME"]
job_name = Gitlab::Utils.slugify(ENV["CI_JOB_NAME"])
coverage_dir "coverage/#{job_name}"
command_name job_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
end
end
def configure_profile
SimpleCov.configure do
load_profile "test_frameworks"
track_files "{app,lib}/**/*.rb"
add_filter "/vendor/ruby/"
add_filter "app/controllers/sherlock/"
add_filter "config/initializers/"
add_filter "db/fixtures/"
add_filter "lib/gitlab/sidekiq_middleware/"
add_filter "lib/system_check/"
add_group "Controllers", "app/controllers"
add_group "Finders", "app/finders"
add_group "Helpers", "app/helpers"
add_group "Libraries", "lib"
add_group "Mailers", "app/mailers"
add_group "Models", "app/models"
add_group "Policies", "app/policies"
add_group "Presenters", "app/presenters"
add_group "Serializers", "app/serializers"
add_group "Services", "app/services"
add_group "Uploaders", "app/uploaders"
add_group "Validators", "app/validators"
add_group "Workers", %w[app/jobs app/workers]
merge_timeout 365.days
end
end
end
|