coverband 4.2.3 → 4.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop.yml +5 -6
- data/.travis.yml +6 -0
- data/README.md +40 -20
- data/changes.md +16 -9
- data/coverband.gemspec +1 -0
- data/lib/coverband/adapters/base.rb +1 -1
- data/lib/coverband/adapters/hash_redis_store.rb +49 -42
- data/lib/coverband/adapters/redis_store.rb +4 -2
- data/lib/coverband/collectors/coverage.rb +1 -1
- data/lib/coverband/collectors/view_tracker.rb +14 -5
- data/lib/coverband/configuration.rb +18 -5
- data/lib/coverband/integrations/background.rb +3 -0
- data/lib/coverband/reporters/html_report.rb +10 -0
- data/lib/coverband/reporters/web.rb +16 -0
- data/lib/coverband/utils/html_formatter.rb +8 -0
- data/lib/coverband/utils/railtie.rb +16 -9
- data/lib/coverband/utils/s3_report.rb +0 -1
- data/lib/coverband/version.rb +1 -1
- data/lib/coverband.rb +12 -7
- data/lua/install.sh +15 -0
- data/lua/lib/persist-coverage.lua +28 -0
- data/lua/test/bootstrap.lua +5 -0
- data/lua/test/harness.lua +19 -0
- data/lua/test/redis-call.lua +55 -0
- data/lua/test/test-persist-coverage.lua +132 -0
- data/test/coverband/adapters/hash_redis_store_test.rb +4 -3
- data/test/coverband/adapters/redis_store_test.rb +10 -5
- data/test/coverband/collectors/coverage_test.rb +10 -4
- data/test/coverband/collectors/view_tracker_test.rb +38 -18
- data/test/coverband/configuration_test.rb +10 -10
- data/test/coverband/integrations/background_test.rb +10 -0
- data/test/coverband/integrations/resque_worker_test.rb +0 -1
- data/test/coverband/reporters/base_test.rb +6 -5
- data/test/coverband/reporters/console_test.rb +2 -5
- data/test/coverband/reporters/html_test.rb +1 -3
- data/test/coverband/utils/html_formatter_test.rb +1 -3
- data/test/forked/rails_rake_full_stack_test.rb +10 -0
- data/test/integration/full_stack_test.rb +1 -3
- data/test/rails4_dummy/config/coverband.rb +3 -13
- data/test/rails4_dummy/config/coverband_missing_redis.rb +3 -0
- data/test/rails5_dummy/config/coverband.rb +4 -2
- data/test/rails5_dummy/config/coverband_missing_redis.rb +15 -0
- data/test/test_helper.rb +8 -4
- data/views/data.erb +1 -0
- data/views/nav.erb +1 -0
- data/views/view_tracker.erb +5 -2
- metadata +27 -2
|
@@ -3,6 +3,10 @@
|
|
|
3
3
|
require File.expand_path('../../test_helper', File.dirname(__FILE__))
|
|
4
4
|
|
|
5
5
|
class ReportsBaseTest < Minitest::Test
|
|
6
|
+
def setup
|
|
7
|
+
super
|
|
8
|
+
end
|
|
9
|
+
|
|
6
10
|
test '#merge_arrays basic merge preserves order and counts' do
|
|
7
11
|
first = [0, 0, 1, 0, 1]
|
|
8
12
|
second = [nil, 0, 1, 0, 0]
|
|
@@ -28,14 +32,9 @@ class ReportsBaseTest < Minitest::Test
|
|
|
28
32
|
end
|
|
29
33
|
|
|
30
34
|
test "#get_current_scov_data_imp doesn't ignore folders with default ignore keys" do
|
|
31
|
-
@redis = Redis.new
|
|
32
|
-
store = Coverband::Adapters::RedisStore.new(@redis, redis_namespace: 'coverband_test')
|
|
33
|
-
store.clear!
|
|
34
|
-
|
|
35
35
|
Coverband.configure do |config|
|
|
36
36
|
config.reporter = 'std_out'
|
|
37
37
|
config.root = '/full/remote_app/path'
|
|
38
|
-
config.store = store
|
|
39
38
|
end
|
|
40
39
|
|
|
41
40
|
key = '/a_path/that_has_erb_in/thepath.rb'
|
|
@@ -55,6 +54,7 @@ class ReportsBaseTest < Minitest::Test
|
|
|
55
54
|
# rubocop:disable all
|
|
56
55
|
###
|
|
57
56
|
test '#get_current_scov_data_imp merges multiples of file data' do
|
|
57
|
+
skip "@danmayer to take a closer look at this one"
|
|
58
58
|
coverage = {'/base/66/app/controllers/dashboard_controller.rb' =>
|
|
59
59
|
{"first_updated_at"=>1549610119,
|
|
60
60
|
"last_updated_at"=>1549610200,
|
|
@@ -88,4 +88,5 @@ class ReportsBaseTest < Minitest::Test
|
|
|
88
88
|
"data"=>[38, 38, 38, nil, 38, 38, nil, nil, 38, nil, 38, 80, 80, nil, 80, 80, 80, 80, 80, 80, 80, nil, nil, 38, nil, 38, 80, 55, 0, 0, 0, 0, nil, nil, nil, nil, 0, 0, nil, nil, 38, 80, 80, 80, nil, nil, nil, nil, nil, 38, 80, nil, nil, 38, 80, nil, nil]}
|
|
89
89
|
assert_equal expected, Coverband::Reporters::Base.send(:get_current_scov_data_imp, store, roots)[:merged][key]
|
|
90
90
|
end
|
|
91
|
+
|
|
91
92
|
end
|
|
@@ -7,15 +7,12 @@ class HTMLReportTest < Minitest::Test
|
|
|
7
7
|
|
|
8
8
|
def setup
|
|
9
9
|
super
|
|
10
|
-
@
|
|
11
|
-
@store = Coverband::Adapters::RedisStore.new(@redis, redis_namespace: 'coverband_test')
|
|
12
|
-
@store.clear!
|
|
10
|
+
@store = Coverband.configuration.store
|
|
13
11
|
end
|
|
14
12
|
|
|
15
13
|
test 'report data' do
|
|
16
14
|
Coverband.configure do |config|
|
|
17
|
-
config.reporter
|
|
18
|
-
config.store = @store
|
|
15
|
+
config.reporter = 'std_out'
|
|
19
16
|
end
|
|
20
17
|
Coverband.configuration.logger.stubs('info')
|
|
21
18
|
mock_file_hash
|
|
@@ -5,9 +5,7 @@ require File.expand_path('../../test_helper', File.dirname(__FILE__))
|
|
|
5
5
|
class ReportHTMLTest < Minitest::Test
|
|
6
6
|
def setup
|
|
7
7
|
super
|
|
8
|
-
@
|
|
9
|
-
@store = Coverband::Adapters::RedisStore.new(@redis, redis_namespace: 'coverband_test')
|
|
10
|
-
@store.clear!
|
|
8
|
+
@store = Coverband.configuration.store
|
|
11
9
|
Coverband.configure do |config|
|
|
12
10
|
config.store = @store
|
|
13
11
|
config.root = fixtures_root
|
|
@@ -5,9 +5,7 @@ require File.expand_path('../../test_helper', File.dirname(__FILE__))
|
|
|
5
5
|
class HTMLFormatterTest < Minitest::Test
|
|
6
6
|
def setup
|
|
7
7
|
super
|
|
8
|
-
@
|
|
9
|
-
@store = Coverband::Adapters::RedisStore.new(@redis, redis_namespace: 'coverband_test')
|
|
10
|
-
@store.clear!
|
|
8
|
+
@store = Coverband::Adapters::RedisStore.new(Coverband::Test.redis, redis_namespace: 'coverband_test')
|
|
11
9
|
end
|
|
12
10
|
|
|
13
11
|
test 'generate dynamic content hosted html report' do
|
|
@@ -45,4 +45,14 @@ class RailsRakeFullStackTest < Minitest::Test
|
|
|
45
45
|
assert_equal empty_hash, coverage_report[:eager_loading]
|
|
46
46
|
assert_equal empty_hash, coverage_report[:merged]
|
|
47
47
|
end
|
|
48
|
+
|
|
49
|
+
test "doesn't exit non-zero with error on missing redis" do
|
|
50
|
+
output = `COVERBAND_CONFIG=./test/rails#{Rails::VERSION::MAJOR}_dummy/config/coverband_missing_redis.rb bundle exec rake -f test/rails#{Rails::VERSION::MAJOR}_dummy/Rakefile -T`
|
|
51
|
+
assert_equal 0, $?.to_i
|
|
52
|
+
if ENV['COVERBAND_HASH_REDIS_STORE']
|
|
53
|
+
assert output.match(/Redis is not available/)
|
|
54
|
+
else
|
|
55
|
+
assert output.match(/coverage failed to store/)
|
|
56
|
+
end
|
|
57
|
+
end
|
|
48
58
|
end
|
|
@@ -11,12 +11,10 @@ class FullStackTest < Minitest::Test
|
|
|
11
11
|
super
|
|
12
12
|
Coverband::Collectors::Coverage.instance.reset_instance
|
|
13
13
|
Coverband.configure do |config|
|
|
14
|
-
config.store = Coverband::Adapters::RedisStore.new(Redis.new, redis_namespace: 'coverband_test')
|
|
15
14
|
config.s3_bucket = nil
|
|
16
|
-
config.background_reporting_enabled =
|
|
15
|
+
config.background_reporting_enabled = false
|
|
17
16
|
config.track_gems = true
|
|
18
17
|
end
|
|
19
|
-
Coverband.configuration.store.clear!
|
|
20
18
|
Coverband.start
|
|
21
19
|
Coverband::Collectors::Coverage.instance.eager_loading!
|
|
22
20
|
@rack_file = require_unique_file 'fake_app/basic_rack.rb'
|
|
@@ -1,13 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
config.ignore = %w[vendor .erb$ .slim$]
|
|
5
|
-
config.root_paths = []
|
|
6
|
-
config.logger = Rails.logger
|
|
7
|
-
config.verbose = true
|
|
8
|
-
config.background_reporting_enabled = true
|
|
9
|
-
config.track_gems = true
|
|
10
|
-
config.gem_details = true
|
|
11
|
-
config.use_oneshot_lines_coverage = true if ENV['ONESHOT']
|
|
12
|
-
config.simulate_oneshot_lines_coverage = true if ENV['SIMULATE_ONESHOT']
|
|
13
|
-
end
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative '../../rails5_dummy/config/coverband'
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
Coverband.configure do |config|
|
|
2
4
|
config.root = Dir.pwd
|
|
3
|
-
config.store = Coverband::Adapters::RedisStore.new(Redis.new(url: ENV['REDIS_URL']), redis_namespace: 'coverband_test') if defined? Redis
|
|
4
|
-
config.ignore = %w[
|
|
5
|
+
config.store = Coverband::Adapters::RedisStore.new(Redis.new(db: 2, url: ENV['REDIS_URL']), redis_namespace: 'coverband_test') if defined? Redis
|
|
6
|
+
config.ignore = %w[.erb$ .slim$]
|
|
5
7
|
config.root_paths = []
|
|
6
8
|
config.logger = Rails.logger
|
|
7
9
|
config.verbose = true
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
Coverband.configure do |config|
|
|
4
|
+
config.root = Dir.pwd
|
|
5
|
+
config.store = Coverband::Adapters::RedisStore.new(Redis.new(db: 2, url: 'redis://127.0.0.1:123'), redis_namespace: 'coverband_test') if defined? Redis
|
|
6
|
+
config.ignore = %w[vendor .erb$ .slim$]
|
|
7
|
+
config.root_paths = []
|
|
8
|
+
config.logger = Rails.logger
|
|
9
|
+
config.verbose = true
|
|
10
|
+
config.background_reporting_enabled = true
|
|
11
|
+
config.track_gems = true
|
|
12
|
+
config.gem_details = true
|
|
13
|
+
config.use_oneshot_lines_coverage = true if ENV['ONESHOT']
|
|
14
|
+
config.simulate_oneshot_lines_coverage = true if ENV['SIMULATE_ONESHOT']
|
|
15
|
+
end
|
data/test/test_helper.rb
CHANGED
|
@@ -30,20 +30,24 @@ end
|
|
|
30
30
|
|
|
31
31
|
module Coverband
|
|
32
32
|
module Test
|
|
33
|
+
TEST_DB = 2
|
|
34
|
+
|
|
35
|
+
def self.redis
|
|
36
|
+
@redis ||= Redis.new(db: TEST_DB)
|
|
37
|
+
end
|
|
38
|
+
|
|
33
39
|
def self.reset
|
|
34
40
|
Coverband.configuration.redis_namespace = 'coverband_test'
|
|
35
41
|
Coverband.configuration.store.instance_variable_set(:@redis_namespace, 'coverband_test')
|
|
36
42
|
Coverband.configuration.store.class.class_variable_set(:@@path_cache, {})
|
|
37
|
-
%i[eager_loading runtime].each do |type|
|
|
38
|
-
Coverband.configuration.store.type = type
|
|
39
|
-
Coverband.configuration.store.clear!
|
|
40
|
-
end
|
|
41
43
|
Coverband.configuration.reset
|
|
42
44
|
Coverband::Collectors::Coverage.instance.reset_instance
|
|
43
45
|
Coverband::Utils::RelativeFileConverter.reset
|
|
44
46
|
Coverband::Utils::AbsoluteFileConverter.reset
|
|
45
47
|
Coverband.configuration.redis_namespace = 'coverband_test'
|
|
46
48
|
Coverband::Background.stop
|
|
49
|
+
Coverband.configuration.store.instance_variable_set(:@redis, redis)
|
|
50
|
+
redis.flushdb
|
|
47
51
|
end
|
|
48
52
|
|
|
49
53
|
def setup
|
data/views/data.erb
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<%= result.source_files.to_json %>
|
data/views/nav.erb
CHANGED
data/views/view_tracker.erb
CHANGED
|
@@ -14,11 +14,14 @@
|
|
|
14
14
|
<%= display_nav(show_coverage_link: true) %>
|
|
15
15
|
<div id="content">
|
|
16
16
|
<% tracker = Coverband::Collectors::ViewTracker.new(store: Coverband.configuration.store) %>
|
|
17
|
-
<
|
|
17
|
+
<h4>
|
|
18
18
|
<% if Coverband.configuration.web_enable_clear %>
|
|
19
19
|
<%= button("#{base_path}clear_view_tracking", 'reset view tracker', delete: true) %>
|
|
20
20
|
<% end %>
|
|
21
|
-
|
|
21
|
+
<% if Coverband.configuration.web_debug %>
|
|
22
|
+
<a href='<%= "#{base_path}view_tracker_data" %>'>view tracker data</a>
|
|
23
|
+
<% end %>
|
|
24
|
+
</h4>
|
|
22
25
|
<h2>Unused Views: (<%= tracker.unused_views.length %>)</h2>
|
|
23
26
|
<p>These views have not been rendered since recording started at <%= tracker.tracking_since %></p>
|
|
24
27
|
<ul>
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: coverband
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 4.2.
|
|
4
|
+
version: 4.2.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Dan Mayer
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2019-
|
|
12
|
+
date: 2019-12-29 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: aws-sdk-s3
|
|
@@ -193,6 +193,20 @@ dependencies:
|
|
|
193
193
|
- - ">="
|
|
194
194
|
- !ruby/object:Gem::Version
|
|
195
195
|
version: '0'
|
|
196
|
+
- !ruby/object:Gem::Dependency
|
|
197
|
+
name: rubocop-performance
|
|
198
|
+
requirement: !ruby/object:Gem::Requirement
|
|
199
|
+
requirements:
|
|
200
|
+
- - ">="
|
|
201
|
+
- !ruby/object:Gem::Version
|
|
202
|
+
version: '0'
|
|
203
|
+
type: :development
|
|
204
|
+
prerelease: false
|
|
205
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
206
|
+
requirements:
|
|
207
|
+
- - ">="
|
|
208
|
+
- !ruby/object:Gem::Version
|
|
209
|
+
version: '0'
|
|
196
210
|
- !ruby/object:Gem::Dependency
|
|
197
211
|
name: coveralls
|
|
198
212
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -304,6 +318,12 @@ files:
|
|
|
304
318
|
- lib/coverband/utils/source_file.rb
|
|
305
319
|
- lib/coverband/utils/tasks.rb
|
|
306
320
|
- lib/coverband/version.rb
|
|
321
|
+
- lua/install.sh
|
|
322
|
+
- lua/lib/persist-coverage.lua
|
|
323
|
+
- lua/test/bootstrap.lua
|
|
324
|
+
- lua/test/harness.lua
|
|
325
|
+
- lua/test/redis-call.lua
|
|
326
|
+
- lua/test/test-persist-coverage.lua
|
|
307
327
|
- public/application.css
|
|
308
328
|
- public/application.js
|
|
309
329
|
- public/colorbox/border.png
|
|
@@ -388,6 +408,7 @@ files:
|
|
|
388
408
|
- test/rails4_dummy/config/application.rb
|
|
389
409
|
- test/rails4_dummy/config/boot.rb
|
|
390
410
|
- test/rails4_dummy/config/coverband.rb
|
|
411
|
+
- test/rails4_dummy/config/coverband_missing_redis.rb
|
|
391
412
|
- test/rails4_dummy/config/environment.rb
|
|
392
413
|
- test/rails4_dummy/config/routes.rb
|
|
393
414
|
- test/rails4_dummy/config/secrets.yml
|
|
@@ -397,12 +418,14 @@ files:
|
|
|
397
418
|
- test/rails5_dummy/config.ru
|
|
398
419
|
- test/rails5_dummy/config/application.rb
|
|
399
420
|
- test/rails5_dummy/config/coverband.rb
|
|
421
|
+
- test/rails5_dummy/config/coverband_missing_redis.rb
|
|
400
422
|
- test/rails5_dummy/config/environment.rb
|
|
401
423
|
- test/rails5_dummy/config/routes.rb
|
|
402
424
|
- test/rails5_dummy/tmp/.keep
|
|
403
425
|
- test/rails_test_helper.rb
|
|
404
426
|
- test/test_helper.rb
|
|
405
427
|
- test/unique_files.rb
|
|
428
|
+
- views/data.erb
|
|
406
429
|
- views/file_list.erb
|
|
407
430
|
- views/gem_list.erb
|
|
408
431
|
- views/layout.erb
|
|
@@ -493,6 +516,7 @@ test_files:
|
|
|
493
516
|
- test/rails4_dummy/config/application.rb
|
|
494
517
|
- test/rails4_dummy/config/boot.rb
|
|
495
518
|
- test/rails4_dummy/config/coverband.rb
|
|
519
|
+
- test/rails4_dummy/config/coverband_missing_redis.rb
|
|
496
520
|
- test/rails4_dummy/config/environment.rb
|
|
497
521
|
- test/rails4_dummy/config/routes.rb
|
|
498
522
|
- test/rails4_dummy/config/secrets.yml
|
|
@@ -502,6 +526,7 @@ test_files:
|
|
|
502
526
|
- test/rails5_dummy/config.ru
|
|
503
527
|
- test/rails5_dummy/config/application.rb
|
|
504
528
|
- test/rails5_dummy/config/coverband.rb
|
|
529
|
+
- test/rails5_dummy/config/coverband_missing_redis.rb
|
|
505
530
|
- test/rails5_dummy/config/environment.rb
|
|
506
531
|
- test/rails5_dummy/config/routes.rb
|
|
507
532
|
- test/rails5_dummy/tmp/.keep
|