coverband 4.2.4 → 4.2.5.rc.1
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/.travis.yml +3 -2
- data/README.md +25 -0
- data/lib/coverband/configuration.rb +3 -3
- data/lib/coverband/reporters/web.rb +3 -2
- data/lib/coverband/version.rb +1 -1
- data/test/coverband/reporters/web_test.rb +6 -0
- data/test/test_helper.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 57a58a71386b69f1d6ccea984e9950649a95a8618e6716149f3a890725cc23ff
|
|
4
|
+
data.tar.gz: 1b027835c1bf84f630626c32305ac57b7589c79bb785f7486f1a5446aab103fd
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 359c975e792a4b640dd35881ff6c413eb1252e9842cf662a458ce8d0e135e1b29e4a1d41166628a4bab5826ea360e3005557be6c6539b521b322127d441a54f3
|
|
7
|
+
data.tar.gz: e3b6acc540519877792d1779a3ade69e08f3ef7957a4bd9077984ccd89cbfcbb6dfec5076ce2273997992129f34006907b02e48f44dc5cdb9f94d0df88a2dd82
|
data/.travis.yml
CHANGED
|
@@ -4,17 +4,18 @@ rvm:
|
|
|
4
4
|
- "2.4"
|
|
5
5
|
- "2.5"
|
|
6
6
|
- "2.6.1"
|
|
7
|
+
# - "2.7" #disable until I can detect and exclude rails for on Ruby 2.7
|
|
7
8
|
cache:
|
|
8
9
|
bundler: true
|
|
9
10
|
directories:
|
|
10
|
-
|
|
11
|
+
- $HOME/lua51
|
|
11
12
|
gemfile:
|
|
12
13
|
- Gemfile
|
|
13
14
|
- Gemfile.rails4
|
|
14
15
|
services:
|
|
15
16
|
- redis-server
|
|
16
17
|
script:
|
|
17
|
-
- sudo ./lua/install.sh
|
|
18
|
+
- sudo ./lua/install.sh
|
|
18
19
|
- $HOME/lua51/bin/busted lua/test/*
|
|
19
20
|
- bundle exec rake rubocop
|
|
20
21
|
- COVERBAND_HASH_REDIS_STORE=t bundle exec rake
|
data/README.md
CHANGED
|
@@ -206,6 +206,8 @@ config.ignore += ['config/application.rb',
|
|
|
206
206
|
'lib/tasks/*']
|
|
207
207
|
```
|
|
208
208
|
|
|
209
|
+
__Ignoring Custom Gem Locations:__ Note, if you have your gems in a custom location under your app folder you likely want to add them to `config.ignore`. For example, if you have your gems not in a default ignored location of `app/vendor` but have them in `app/gems` you would need to add `gems/*` to your ignore list.
|
|
210
|
+
|
|
209
211
|
### View Tracking
|
|
210
212
|
|
|
211
213
|
Coverband allows an optional feature to track all view files that are used by an application.
|
|
@@ -237,6 +239,29 @@ ENV['AWS_ACCESS_KEY_ID']
|
|
|
237
239
|
ENV['AWS_SECRET_ACCESS_KEY']
|
|
238
240
|
```
|
|
239
241
|
|
|
242
|
+
### Fixing Coverage Only Shows Loading Hits
|
|
243
|
+
|
|
244
|
+
If all your coverage is being counted as loading or eager_loading coverage, and nothing is showing as runtime Coverage the initialization hook failed for some reason. The most likely reason for this issue is manually calling `eager_load!` on some Plugin/Gem. If you or a plugin is altering the Rails initialization process, you can manually flip Coverband to runtime coverage by calling these two lines, in an `after_initialize` block, in `application.rb`.
|
|
245
|
+
|
|
246
|
+
```ruby
|
|
247
|
+
config.after_initialize do
|
|
248
|
+
unless Coverband.tasks_to_ignore?
|
|
249
|
+
Coverband.report_coverage # record the last of the loading coverage
|
|
250
|
+
Coverband.runtime_coverage! # set all future coverage to runtime
|
|
251
|
+
end
|
|
252
|
+
end
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
or if you know you are manually calling eager load anywhere in your initialization process immediately adfter call those two lines. A user reported an issue after calling `ResqueWeb::Engine.eager_load!` for example.
|
|
256
|
+
|
|
257
|
+
```ruby
|
|
258
|
+
Rails.application.routes.draw do
|
|
259
|
+
ResqueWeb::Engine.eager_load!
|
|
260
|
+
Coverband.report_coverage
|
|
261
|
+
Coverband.runtime_coverage!
|
|
262
|
+
end
|
|
263
|
+
```
|
|
264
|
+
|
|
240
265
|
### Avoiding Cache Stampede
|
|
241
266
|
|
|
242
267
|
If you have many servers and they all hit Redis at the same time you can see spikes in your Redis CPU, and memory. This is do to a concept called [cache stampede](https://en.wikipedia.org/wiki/Cache_stampede). It is better to spread out the reporting across your servers. A simple way to do this is to add a random wiggle on your background reporting. This configuration option allows a wiggle. The right amount of wiggle depends on the numbers of servers you have and how willing you are to have delays in your coverage reporting. I would recommend at least 1 second per server.
|
|
@@ -54,7 +54,7 @@ module Coverband
|
|
|
54
54
|
@root = Dir.pwd
|
|
55
55
|
@root_paths = []
|
|
56
56
|
@ignore = IGNORE_DEFAULTS.dup
|
|
57
|
-
@
|
|
57
|
+
@search_paths = TRACKED_DEFAULT_PATHS.dup
|
|
58
58
|
@additional_files = []
|
|
59
59
|
@verbose = false
|
|
60
60
|
@reporter = 'scov'
|
|
@@ -134,14 +134,14 @@ module Coverband
|
|
|
134
134
|
# Search Paths
|
|
135
135
|
###
|
|
136
136
|
def tracked_search_paths
|
|
137
|
-
"#{Coverband.configuration.current_root}/{#{@
|
|
137
|
+
"#{Coverband.configuration.current_root}/{#{@search_paths.join(',')}}/**/*.{rb}"
|
|
138
138
|
end
|
|
139
139
|
|
|
140
140
|
###
|
|
141
141
|
# Don't allow the to override defaults
|
|
142
142
|
###
|
|
143
143
|
def search_paths=(path_array)
|
|
144
|
-
@
|
|
144
|
+
@search_paths = (@search_paths + path_array).uniq
|
|
145
145
|
end
|
|
146
146
|
|
|
147
147
|
###
|
|
@@ -32,8 +32,9 @@ module Coverband
|
|
|
32
32
|
|
|
33
33
|
return [401, { 'www-authenticate' => 'Basic realm=""' }, ['']] unless check_auth
|
|
34
34
|
|
|
35
|
+
request_path_info = (request.path_info == '') ? '/' : request.path_info
|
|
35
36
|
if request.post?
|
|
36
|
-
case
|
|
37
|
+
case request_path_info
|
|
37
38
|
when %r{\/clear_view_tracking_file}
|
|
38
39
|
clear_view_tracking_file
|
|
39
40
|
when %r{\/clear_view_tracking}
|
|
@@ -46,7 +47,7 @@ module Coverband
|
|
|
46
47
|
[404, { 'Content-Type' => 'text/html' }, ['404 error!']]
|
|
47
48
|
end
|
|
48
49
|
else
|
|
49
|
-
case
|
|
50
|
+
case request_path_info
|
|
50
51
|
when /.*\.(css|js|gif|png)/
|
|
51
52
|
@static.call(env)
|
|
52
53
|
when %r{\/settings}
|
data/lib/coverband/version.rb
CHANGED
|
@@ -27,6 +27,12 @@ if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.2.0')
|
|
|
27
27
|
assert_match 'Coverband Admin', last_response.body
|
|
28
28
|
end
|
|
29
29
|
|
|
30
|
+
test 'renders index content for empty path' do
|
|
31
|
+
get ''
|
|
32
|
+
assert last_response.ok?
|
|
33
|
+
assert_match 'Coverband Admin', last_response.body
|
|
34
|
+
end
|
|
35
|
+
|
|
30
36
|
test 'renders 404' do
|
|
31
37
|
get '/show'
|
|
32
38
|
assert last_response.not_found?
|
data/test/test_helper.rb
CHANGED
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.5.rc.1
|
|
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:
|
|
12
|
+
date: 2020-03-28 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: aws-sdk-s3
|
|
@@ -449,9 +449,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
449
449
|
version: '0'
|
|
450
450
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
451
451
|
requirements:
|
|
452
|
-
- - "
|
|
452
|
+
- - ">"
|
|
453
453
|
- !ruby/object:Gem::Version
|
|
454
|
-
version:
|
|
454
|
+
version: 1.3.1
|
|
455
455
|
requirements: []
|
|
456
456
|
rubygems_version: 3.0.3
|
|
457
457
|
signing_key:
|