coverband 1.5.0 → 1.5.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/coverband.gemspec +1 -1
- data/lib/coverband/base.rb +32 -2
- data/lib/coverband/configuration.rb +3 -1
- data/lib/coverband/version.rb +1 -1
- data/test/unit/base_test.rb +4 -0
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cf69ef556cbc606786ff1d0b49b74728cedbf0f5
|
4
|
+
data.tar.gz: 28d03bf504a6a51b112a5db554b8393032f9678f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ff7da9c529350fb7dc8b1a7b6725bd3c50c5941934a8704fe17b2db9da8f8921269e8aa520ab9c17bae0a227fd269807823ae751149a7852523089aadc5f9260
|
7
|
+
data.tar.gz: 40fee47fee66304cb0610050c09beb9e08ce686e00b6012791e9dcc48c5efd3970174c3fa9d93eaf1efd28a7b61ebe5dd891be52beedb88275fc8dd1fc7a0120
|
data/README.md
CHANGED
@@ -67,7 +67,7 @@ That gives you the gem, but to get up and running then follow:
|
|
67
67
|
* Insert middleware in stack
|
68
68
|
* run `bundle exec rake coverband:baseline` ([what is baseline?](https://github.com/danmayer/coverband#coverband-baseline))
|
69
69
|
* run `bundle exec rake coverband:coverage` this will show app initialization coverage
|
70
|
-
* run app and hit a controller (hit at least +1 time over your `config.startup_delay` setting default is
|
70
|
+
* run app and hit a controller (hit at least +1 time over your `config.startup_delay` setting default is 0)
|
71
71
|
* run `bundle exec rake coverband:coverage` and you should see coverage increasing for the endpoints you hit.
|
72
72
|
|
73
73
|
|
@@ -118,7 +118,7 @@ Coverband.configure do |config|
|
|
118
118
|
# Since rails and other frameworks lazy load code. I have found it is bad to allow
|
119
119
|
# initial requests to record with coverband. This ignores first 15 requests
|
120
120
|
# NOTE: If you are using a threaded webserver (example: Puma) this will ignore requests for each thread
|
121
|
-
config.startup_delay = Rails.env.production? ?
|
121
|
+
config.startup_delay = Rails.env.production? ? 5 : 0
|
122
122
|
# Percentage of requests recorded
|
123
123
|
config.percentage = Rails.env.production? ? 30.0 : 100.0
|
124
124
|
|
data/coverband.gemspec
CHANGED
@@ -27,7 +27,7 @@ Gem::Specification.new do |spec|
|
|
27
27
|
spec.add_development_dependency 'sinatra'
|
28
28
|
spec.add_development_dependency 'classifier-reborn'
|
29
29
|
spec.add_development_dependency 'aws-sdk', '~> 2'
|
30
|
-
spec.add_runtime_dependency "simplecov"
|
30
|
+
spec.add_runtime_dependency "simplecov", '~> 0.11'
|
31
31
|
spec.add_runtime_dependency "json"
|
32
32
|
# TODO make redis optional dependancy as we add additional adapters
|
33
33
|
spec.add_runtime_dependency "redis"
|
data/lib/coverband/base.rb
CHANGED
@@ -21,8 +21,9 @@ module Coverband
|
|
21
21
|
def sample
|
22
22
|
configure_sampling
|
23
23
|
record_coverage
|
24
|
-
yield
|
24
|
+
result = yield
|
25
25
|
report_coverage
|
26
|
+
result
|
26
27
|
end
|
27
28
|
|
28
29
|
def save
|
@@ -38,6 +39,7 @@ module Coverband
|
|
38
39
|
def reset_instance
|
39
40
|
@project_directory = File.expand_path(Coverband.configuration.root)
|
40
41
|
@enabled = false
|
42
|
+
@disable_on_failure_for = Coverband.configuration.disable_on_failure_for
|
41
43
|
@tracer_set = false
|
42
44
|
@file_line_usage = {}
|
43
45
|
@ignored_files = Set.new
|
@@ -65,13 +67,14 @@ module Coverband
|
|
65
67
|
end
|
66
68
|
|
67
69
|
def record_coverage
|
68
|
-
if @enabled
|
70
|
+
if @enabled && !failed_recently?
|
69
71
|
set_tracer
|
70
72
|
else
|
71
73
|
unset_tracer
|
72
74
|
end
|
73
75
|
@stats.increment "coverband.request.recorded.#{@enabled}" if @stats
|
74
76
|
rescue RuntimeError => err
|
77
|
+
failed!
|
75
78
|
if @verbose
|
76
79
|
@logger.info "error stating recording coverage"
|
77
80
|
@logger.info "error: #{err.inspect} #{err.message}"
|
@@ -86,6 +89,11 @@ module Coverband
|
|
86
89
|
|
87
90
|
unset_tracer
|
88
91
|
|
92
|
+
if failed_recently?
|
93
|
+
@logger.info "coverage reporting sanding-by because of recent failure" if @verbose
|
94
|
+
return
|
95
|
+
end
|
96
|
+
|
89
97
|
if @verbose
|
90
98
|
@logger.info "coverband file usage: #{file_usage.inspect}"
|
91
99
|
if @verbose=="debug"
|
@@ -109,6 +117,7 @@ module Coverband
|
|
109
117
|
@logger.info @file_line_usage.inspect
|
110
118
|
end
|
111
119
|
rescue RuntimeError => err
|
120
|
+
failed!
|
112
121
|
if @verbose
|
113
122
|
@logger.info "coverage missing"
|
114
123
|
@logger.info "error: #{err.inspect} #{err.message}"
|
@@ -144,6 +153,27 @@ module Coverband
|
|
144
153
|
|
145
154
|
private
|
146
155
|
|
156
|
+
def failed_at_thread_key
|
157
|
+
"__#{self.class.name}__failed_at"
|
158
|
+
end
|
159
|
+
|
160
|
+
def failed_at
|
161
|
+
Thread.current[failed_at_thread_key]
|
162
|
+
end
|
163
|
+
|
164
|
+
def failed_at=(time)
|
165
|
+
Thread.current[failed_at_thread_key] = time
|
166
|
+
end
|
167
|
+
|
168
|
+
def failed!
|
169
|
+
self.failed_at = Time.now
|
170
|
+
end
|
171
|
+
|
172
|
+
def failed_recently?
|
173
|
+
return false unless @disable_on_failure_for && failed_at
|
174
|
+
failed_at + @disable_on_failure_for > Time.now
|
175
|
+
end
|
176
|
+
|
147
177
|
def file_usage
|
148
178
|
hash = {}
|
149
179
|
@file_line_usage.each do |file, lines|
|
@@ -4,7 +4,8 @@ module Coverband
|
|
4
4
|
attr_accessor :redis, :root_paths, :root,
|
5
5
|
:ignore, :percentage, :verbose, :reporter, :stats,
|
6
6
|
:logger, :startup_delay, :trace_point_events,
|
7
|
-
:include_gems, :memory_caching, :s3_bucket, :coverage_file, :store
|
7
|
+
:include_gems, :memory_caching, :s3_bucket, :coverage_file, :store,
|
8
|
+
:disable_on_failure_for
|
8
9
|
|
9
10
|
# deprecated, but leaving to allow old configs to 'just work'
|
10
11
|
# remove for 2.0
|
@@ -26,6 +27,7 @@ module Coverband
|
|
26
27
|
@memory_caching = false
|
27
28
|
@coverage_file = nil
|
28
29
|
@store = nil
|
30
|
+
@disable_on_failure_for = nil
|
29
31
|
end
|
30
32
|
|
31
33
|
def logger
|
data/lib/coverband/version.rb
CHANGED
data/test/unit/base_test.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: coverband
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.5.
|
4
|
+
version: 1.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dan Mayer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-04-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -140,16 +140,16 @@ dependencies:
|
|
140
140
|
name: simplecov
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
|
-
- - "
|
143
|
+
- - "~>"
|
144
144
|
- !ruby/object:Gem::Version
|
145
|
-
version: '0'
|
145
|
+
version: '0.11'
|
146
146
|
type: :runtime
|
147
147
|
prerelease: false
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
|
-
- - "
|
150
|
+
- - "~>"
|
151
151
|
- !ruby/object:Gem::Version
|
152
|
-
version: '0'
|
152
|
+
version: '0.11'
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
154
|
name: json
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|