minitest-hooks 1.4.2 → 1.5.0
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 +5 -5
- data/CHANGELOG +4 -0
- data/lib/minitest/hooks/test.rb +20 -8
- data/spec/errors/example.rb +29 -3
- data/spec/minitest_hooks_all_name_spec.rb +8 -8
- data/spec/minitest_hooks_errors_spec.rb +7 -2
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: e1b87392a55ca81f157fd989534fc2b79040ec5e195fca3c8a1b7ddffaf15213
|
4
|
+
data.tar.gz: 82e5b7956582f51edd760939dee7b27e0dc06f472fd15cf9c21fff8a9855394c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7ebed42f49cb8283e0b7312b05b7e2f67f98532487b78666f9bd1be0f9b53cad6667ff865e8802d7567b1b16cc1c77d75213a5d1ca67cfcafb9363b62e3278dc
|
7
|
+
data.tar.gz: 6770a8438db15b61715c2743870d1f25adc77c9214b3fd80395d71ac16541ab932c39f735756b9308cf9721ca4641c1d8e53a684f7c8a95a9617a2e73c24c4cd
|
data/CHANGELOG
CHANGED
data/lib/minitest/hooks/test.rb
CHANGED
@@ -64,40 +64,39 @@ module Minitest::Hooks::ClassMethods
|
|
64
64
|
def with_info_handler(reporter, &block)
|
65
65
|
@instance = new(NEW)
|
66
66
|
@instance.time = 0
|
67
|
-
|
68
|
-
@instance.name = "#{description}#around_all"
|
67
|
+
@instance.name = "around_all"
|
69
68
|
|
70
69
|
begin
|
71
70
|
@instance.around_all do
|
72
71
|
begin
|
73
72
|
@instance.capture_exceptions do
|
74
|
-
@instance.name = "
|
73
|
+
@instance.name = "before_all"
|
75
74
|
@instance.before_all
|
76
75
|
end
|
77
76
|
|
78
77
|
if @instance.failure
|
79
78
|
failed = true
|
80
|
-
reporter
|
79
|
+
_record_minitest_hooks_error(reporter, @instance)
|
81
80
|
else
|
82
81
|
super(reporter, &block)
|
83
82
|
end
|
84
83
|
ensure
|
85
84
|
@instance.capture_exceptions do
|
86
|
-
@instance.name = "
|
85
|
+
@instance.name = "after_all" unless failed
|
87
86
|
@instance.after_all
|
88
87
|
end
|
89
88
|
if @instance.failure && !failed
|
90
89
|
failed = true
|
91
|
-
reporter
|
90
|
+
_record_minitest_hooks_error(reporter, @instance)
|
92
91
|
end
|
93
|
-
@instance.name = "
|
92
|
+
@instance.name = "around_all" unless failed
|
94
93
|
end
|
95
94
|
end
|
96
95
|
rescue => e
|
97
96
|
@instance.capture_exceptions do
|
98
97
|
raise e
|
99
98
|
end
|
100
|
-
reporter
|
99
|
+
_record_minitest_hooks_error(reporter, @instance)
|
101
100
|
end
|
102
101
|
end
|
103
102
|
|
@@ -132,4 +131,17 @@ module Minitest::Hooks::ClassMethods
|
|
132
131
|
super
|
133
132
|
end
|
134
133
|
end
|
134
|
+
|
135
|
+
private
|
136
|
+
|
137
|
+
def _record_minitest_hooks_error(reporter, instance)
|
138
|
+
# In MiniTest 5.11+, use Minitest::Result for wrapping the object to send
|
139
|
+
# to the reporter.
|
140
|
+
if(defined?(Minitest::Result))
|
141
|
+
result = Minitest::Result.from(instance)
|
142
|
+
else
|
143
|
+
result = instance
|
144
|
+
end
|
145
|
+
reporter.record result
|
146
|
+
end
|
135
147
|
end
|
data/spec/errors/example.rb
CHANGED
@@ -3,6 +3,32 @@ require 'minitest/hooks/default'
|
|
3
3
|
|
4
4
|
error = ENV['MINITEST_HOOKS_ERRORS']
|
5
5
|
|
6
|
+
module Minitest
|
7
|
+
def self.plugin_result_inspector_reporter_init(options)
|
8
|
+
self.reporter << ResultInspectorReporter.new(options[:io], options)
|
9
|
+
end
|
10
|
+
|
11
|
+
class ResultInspectorReporter < SummaryReporter
|
12
|
+
def report
|
13
|
+
results.each do |result|
|
14
|
+
io.puts "result to_s: #{result.to_s.inspect}"
|
15
|
+
# For MiniTest 5.11+, we expect Minitest::Result objects.
|
16
|
+
if defined?(Minitest::Result)
|
17
|
+
io.puts "result source_location: #{result.source_location.inspect}"
|
18
|
+
else
|
19
|
+
# For older versions of Minitest, extract source_location in a
|
20
|
+
# similar fashion to how some third party reporters expected to be
|
21
|
+
# able to:
|
22
|
+
# https://github.com/circleci/minitest-ci/blob/8b72b0f32f154d91b53d63d1d0a8a8fb3b01d726/lib/minitest/ci_plugin.rb#L139
|
23
|
+
io.puts "result source_location: #{result.method(result.name).source_location.inspect}"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
Minitest.extensions << "result_inspector_reporter"
|
31
|
+
|
6
32
|
describe 'Minitest::Hooks error handling' do
|
7
33
|
before(:all) do
|
8
34
|
raise if error == 'before-all'
|
@@ -26,11 +52,11 @@ describe 'Minitest::Hooks error handling' do
|
|
26
52
|
super(&block)
|
27
53
|
case error
|
28
54
|
when 'before-all'
|
29
|
-
name.must_equal '
|
55
|
+
name.must_equal 'before_all'
|
30
56
|
when 'after-all'
|
31
|
-
name.must_equal '
|
57
|
+
name.must_equal 'after_all'
|
32
58
|
else
|
33
|
-
name.must_equal '
|
59
|
+
name.must_equal 'around_all'
|
34
60
|
end
|
35
61
|
raise if error == 'around-all-after'
|
36
62
|
end
|
@@ -3,15 +3,15 @@ require 'minitest/hooks/default'
|
|
3
3
|
|
4
4
|
describe 'Minitest::Hooks error handling' do
|
5
5
|
before(:all) do
|
6
|
-
name.must_equal '
|
6
|
+
name.must_equal 'before_all'
|
7
7
|
end
|
8
8
|
after(:all) do
|
9
|
-
name.must_equal '
|
9
|
+
name.must_equal 'after_all'
|
10
10
|
end
|
11
11
|
around(:all) do |&block|
|
12
|
-
name.must_equal '
|
12
|
+
name.must_equal 'around_all'
|
13
13
|
super(&block)
|
14
|
-
name.must_equal '
|
14
|
+
name.must_equal 'around_all'
|
15
15
|
end
|
16
16
|
|
17
17
|
3.times do |i|
|
@@ -24,15 +24,15 @@ class MinitestHooksNameTest < Minitest::Test
|
|
24
24
|
include Minitest::Hooks
|
25
25
|
|
26
26
|
def before_all
|
27
|
-
assert_equal '
|
27
|
+
assert_equal 'before_all', name
|
28
28
|
end
|
29
29
|
def after_all
|
30
|
-
assert_equal '
|
30
|
+
assert_equal 'after_all', name
|
31
31
|
end
|
32
32
|
def around_all
|
33
|
-
assert_equal '
|
33
|
+
assert_equal 'around_all', name
|
34
34
|
super
|
35
|
-
assert_equal '
|
35
|
+
assert_equal 'around_all', name
|
36
36
|
end
|
37
37
|
|
38
38
|
3.times do |i|
|
@@ -9,8 +9,13 @@ describe 'Minitest::Hooks error handling' do
|
|
9
9
|
it "should handle errors in #{desc}" do
|
10
10
|
ENV['MINITEST_HOOKS_ERRORS'] = desc
|
11
11
|
Open3.popen3(RUBY, "spec/errors/example.rb", "-v") do |_, o, e, w|
|
12
|
-
o.read
|
13
|
-
|
12
|
+
output = o.read
|
13
|
+
output.must_match /#{runs} runs, 0 assertions, 0 failures, #{errors} errors, 0 skips/
|
14
|
+
output.must_match /result to_s: ".*?Minitest::Hooks error handling#\w+.*?spec\/errors\/example\.rb:\d+/
|
15
|
+
output.must_match /result source_location: \["(unknown|.+?\.rb)", -?\d+\]/
|
16
|
+
output = e.read
|
17
|
+
output.gsub!(/Picked up _JAVA_OPTIONS: [^\n]+\n/, '')
|
18
|
+
output.must_equal ''
|
14
19
|
w.value.exitstatus.wont_equal 0 if w
|
15
20
|
end
|
16
21
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: minitest-hooks
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeremy Evans
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-05-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '5'
|
20
|
-
type: :
|
19
|
+
version: '5.3'
|
20
|
+
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '5'
|
26
|
+
version: '5.3'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: sequel
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -121,7 +121,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
121
121
|
version: '0'
|
122
122
|
requirements: []
|
123
123
|
rubyforge_project:
|
124
|
-
rubygems_version: 2.6
|
124
|
+
rubygems_version: 2.7.6
|
125
125
|
signing_key:
|
126
126
|
specification_version: 4
|
127
127
|
summary: Around and before_all/after_all/around_all hooks for Minitest
|