minitest_rollbar 0.2.2 → 0.2.3
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/README.md +5 -0
- data/lib/minitest_rollbar/reporters.rb +14 -18
- data/lib/minitest_rollbar/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c364e80e6791171ac60e1d572d1b66d8751d2f15
|
4
|
+
data.tar.gz: 369c9601fb7944eccffb7f688d4ecf6e95742289
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 83123c2ede21ce086307087ebe90e2cd0efed85bf5f5e4241a106876f2fb2b0241d742f9653b7faa1d78b559763801fc321717d39ca4fd07ba5c4be143056975
|
7
|
+
data.tar.gz: 2223f889169c48921b5b4013d0cf0b0101f6ecced930a155624a538fa1df36bcf3e8c07bc260becfbdb3c65ba0154cbb715f401d9ce1dfd47c49edc3664fd8f4
|
data/README.md
CHANGED
@@ -30,6 +30,11 @@ Set up authentication token by:
|
|
30
30
|
|
31
31
|
MinitestRollbar.access_token = {YOUR_TOKEN}
|
32
32
|
|
33
|
+
By default we try to group occurrence by string returned by exception.inspect (Concatenate exception class name and message). We generate a fingerprint for that. To use rollbar's [default](https://rollbar.com/docs/grouping-algorithm/) default grouping algorithm, do
|
34
|
+
|
35
|
+
MinitestRollbar.use_default_grouping = true
|
36
|
+
|
37
|
+
|
33
38
|
## License
|
34
39
|
|
35
40
|
This gem is available under the Simplified BSD License.
|
@@ -4,6 +4,7 @@ require 'minitest/reporters'
|
|
4
4
|
module MinitestRollbar
|
5
5
|
class << self
|
6
6
|
attr_accessor :access_token
|
7
|
+
attr_accessor :use_default_grouping
|
7
8
|
end
|
8
9
|
|
9
10
|
class RollbarReporter < Minitest::Reporters::BaseReporter
|
@@ -12,7 +13,7 @@ module MinitestRollbar
|
|
12
13
|
@sequential_exception_count = 0
|
13
14
|
# Inspect will return ExceptionType + Message.
|
14
15
|
# E.g #<Selenium::WebDriver::Error::NoSuchWindowError: Window not found. The browser window may have been closed.>
|
15
|
-
# Use this as a criteria
|
16
|
+
# Use this as a criteria for log batch grouping
|
16
17
|
@previous_exception_inspect_result = nil
|
17
18
|
@previous_exception = nil
|
18
19
|
|
@@ -28,22 +29,17 @@ module MinitestRollbar
|
|
28
29
|
current_exception = result.failure.exception
|
29
30
|
current_exception_inspect_result = current_exception.inspect
|
30
31
|
|
31
|
-
# If there is no previous exception, start a fresh counter
|
32
32
|
if @previous_exception_inspect_result.nil?
|
33
33
|
record_new_error(current_exception)
|
34
|
-
# Report or increment the count the previous errors if a new error occurs
|
35
34
|
elsif current_exception_inspect_result == @previous_exception_inspect_result
|
36
|
-
# Same error, increment counter
|
37
35
|
increment_error_counting
|
38
|
-
else
|
39
|
-
|
40
|
-
report_error_to_rollbar
|
36
|
+
else # New exception
|
37
|
+
report_error_to_rollbar notifier
|
41
38
|
record_new_error current_exception
|
42
39
|
end
|
43
40
|
else
|
44
|
-
# Report previous errors if there is any
|
45
41
|
unless @previous_exception.nil?
|
46
|
-
report_error_to_rollbar
|
42
|
+
report_error_to_rollbar notifier
|
47
43
|
reset_error_counting
|
48
44
|
end
|
49
45
|
end
|
@@ -52,20 +48,20 @@ module MinitestRollbar
|
|
52
48
|
def report
|
53
49
|
super
|
54
50
|
if @sequential_exception_count > 0
|
55
|
-
notifier
|
56
|
-
|
57
|
-
|
58
|
-
@previous_exception_inspect_result = nil
|
59
|
-
@previous_exception = nil
|
60
|
-
@sequential_exception_count = 0
|
61
|
-
|
51
|
+
report_error_to_rollbar notifier
|
52
|
+
reset_error_counting
|
62
53
|
end
|
63
54
|
end
|
64
55
|
|
65
56
|
private
|
66
57
|
|
67
|
-
def
|
68
|
-
|
58
|
+
def notifier
|
59
|
+
MinitestRollbar.use_default_grouping.nil? ?
|
60
|
+
Rollbar.scope({count: @sequential_exception_count, fingerprint: @previous_exception_inspect_result}):
|
61
|
+
Rollbar.scope({count: @sequential_exception_count})
|
62
|
+
end
|
63
|
+
|
64
|
+
def report_error_to_rollbar(notifier)
|
69
65
|
notifier.error(@previous_exception)
|
70
66
|
end
|
71
67
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: minitest_rollbar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yuesong Wang
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-07-
|
11
|
+
date: 2016-07-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -98,7 +98,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
98
98
|
version: '0'
|
99
99
|
requirements: []
|
100
100
|
rubyforge_project:
|
101
|
-
rubygems_version: 2.
|
101
|
+
rubygems_version: 2.5.1
|
102
102
|
signing_key:
|
103
103
|
specification_version: 4
|
104
104
|
summary: A minitest reporter that logs testexceptions to Rollbar.
|