minitest-reporters 0.14.2 → 0.14.3
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +1 -1
- data/lib/minitest/around_test_hooks.rb +21 -0
- data/lib/minitest/reporter_runner.rb +33 -35
- data/lib/minitest/reporters/version.rb +1 -1
- data/lib/minitest/reporters.rb +8 -3
- data/lib/minitest/test_recorder.rb +22 -0
- data/lib/minitest/test_runner.rb +10 -1
- data/test/test_helper.rb +1 -1
- metadata +6 -5
- data/lib/minitest/before_test_hook.rb +0 -16
data/Gemfile
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
source :rubygems
|
2
|
-
gemspec
|
2
|
+
gemspec
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module MiniTest
|
2
|
+
module AroundTestHooks
|
3
|
+
def self.before_test(instance)
|
4
|
+
MiniTest::Unit.runner.before_test(instance.class, instance.__name__)
|
5
|
+
end
|
6
|
+
|
7
|
+
def self.after_test(instance)
|
8
|
+
MiniTest::Unit.runner.after_test(instance.class, instance.__name__)
|
9
|
+
end
|
10
|
+
|
11
|
+
def before_setup
|
12
|
+
AroundTestHooks.before_test(self)
|
13
|
+
super
|
14
|
+
end
|
15
|
+
|
16
|
+
def after_teardown
|
17
|
+
super
|
18
|
+
AroundTestHooks.after_test(self)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -5,18 +5,25 @@ module MiniTest
|
|
5
5
|
#
|
6
6
|
# @see https://github.com/seattlerb/minitest MiniTest
|
7
7
|
class ReporterRunner < Unit
|
8
|
-
|
8
|
+
extend Forwardable
|
9
9
|
|
10
|
-
|
10
|
+
attr_accessor :reporters
|
11
|
+
attr_reader :test_results
|
12
|
+
attr_reader :suites_start_time
|
13
|
+
attr_reader :suite_start_time
|
14
|
+
attr_reader :test_start_time
|
15
|
+
|
16
|
+
def_delegator :@test_recorder, :assertion_count
|
11
17
|
|
12
18
|
def initialize
|
13
19
|
super
|
14
20
|
self.reporters = []
|
15
|
-
|
21
|
+
@test_results = {}
|
22
|
+
@test_recorder = TestRecorder.new
|
16
23
|
end
|
17
24
|
|
18
25
|
def _run_suites(suites, type)
|
19
|
-
|
26
|
+
@suites_start_time = Time.now
|
20
27
|
count_tests!(suites, type)
|
21
28
|
trigger_callback(:before_suites, suites, type)
|
22
29
|
super(suites, type)
|
@@ -25,63 +32,54 @@ module MiniTest
|
|
25
32
|
end
|
26
33
|
|
27
34
|
def _run_suite(suite, type)
|
35
|
+
@suite_start_time = Time.now
|
28
36
|
trigger_callback(:before_suite, suite)
|
29
|
-
self.start_time = Time.now
|
30
37
|
super(suite, type)
|
31
38
|
ensure
|
32
39
|
trigger_callback(:after_suite, suite)
|
33
40
|
end
|
34
41
|
|
35
42
|
def before_test(suite, test)
|
36
|
-
|
43
|
+
@test_start_time = Time.now
|
37
44
|
trigger_callback(:before_test, suite, test)
|
38
45
|
end
|
39
46
|
|
40
47
|
def record(suite, test, assertions, time, exception)
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
when Assertion then :failure
|
47
|
-
else :error
|
48
|
-
end
|
48
|
+
runner = TestRunner.new(suite,
|
49
|
+
test.to_sym,
|
50
|
+
assertions,
|
51
|
+
time,
|
52
|
+
exception)
|
49
53
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
assertions,
|
54
|
-
time,
|
55
|
-
result,
|
56
|
-
exception
|
57
|
-
)
|
58
|
-
|
59
|
-
test_results[suite] ||= {}
|
60
|
-
test_results[suite][test.to_sym] = test_runner
|
61
|
-
trigger_callback(result, suite, test, test_runner)
|
54
|
+
@test_results[suite] ||= {}
|
55
|
+
@test_results[suite][test.to_sym] = runner
|
56
|
+
@test_recorder.record(runner)
|
62
57
|
end
|
63
58
|
|
64
|
-
def
|
65
|
-
|
59
|
+
def after_test(suite, test)
|
60
|
+
runners = @test_recorder[suite, test.to_sym]
|
66
61
|
|
67
|
-
|
62
|
+
runners.each do |runner|
|
63
|
+
trigger_callback(runner.result, suite, test.to_sym, runner)
|
64
|
+
end
|
68
65
|
end
|
69
66
|
|
70
|
-
|
71
|
-
end
|
67
|
+
# Stub out the three IO methods used by the built-in reporter.
|
68
|
+
def puts(*args); end
|
69
|
+
def print(*args); end
|
70
|
+
def status(io = output); end
|
72
71
|
|
73
72
|
private
|
74
73
|
|
75
74
|
def trigger_callback(callback, *args)
|
76
|
-
reporters.each
|
77
|
-
reporter.public_send(callback, *args)
|
78
|
-
end
|
75
|
+
reporters.each { |r| r.public_send(callback, *args) }
|
79
76
|
end
|
80
77
|
|
81
78
|
def count_tests!(suites, type)
|
82
79
|
filter = options[:filter] || '/./'
|
83
80
|
filter = Regexp.new $1 if filter =~ /\/(.*)\//
|
84
|
-
|
81
|
+
|
82
|
+
@test_count = suites.inject(0) do |acc, suite|
|
85
83
|
acc + suite.send("#{type}_methods").grep(filter).length
|
86
84
|
end
|
87
85
|
end
|
data/lib/minitest/reporters.rb
CHANGED
@@ -4,8 +4,9 @@ module MiniTest
|
|
4
4
|
require "minitest/relative_position"
|
5
5
|
require "minitest/reporter"
|
6
6
|
require "minitest/reporter_runner"
|
7
|
-
require "minitest/
|
7
|
+
require "minitest/around_test_hooks"
|
8
8
|
require "minitest/test_runner"
|
9
|
+
require "minitest/test_recorder"
|
9
10
|
require "minitest/extensible_backtrace_filter"
|
10
11
|
|
11
12
|
module Reporters
|
@@ -34,10 +35,14 @@ module MiniTest
|
|
34
35
|
|
35
36
|
def self.use_before_test_hook!
|
36
37
|
if Unit::VERSION >= "3.3.0"
|
37
|
-
Unit::TestCase.send(:include,
|
38
|
+
Unit::TestCase.send(:include, AroundTestHooks)
|
38
39
|
else
|
39
40
|
Unit::TestCase.send(:define_method, :before_setup) do
|
40
|
-
|
41
|
+
AroundTestHooks.before_test(self)
|
42
|
+
end
|
43
|
+
|
44
|
+
Unit::TestCase.send(:define_method, :after_teardown) do
|
45
|
+
AroundTestHooks.after_test(self)
|
41
46
|
end
|
42
47
|
end
|
43
48
|
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module MiniTest
|
2
|
+
class TestRecorder
|
3
|
+
def initialize
|
4
|
+
@records = {}
|
5
|
+
end
|
6
|
+
|
7
|
+
def [](suite, test)
|
8
|
+
name = [suite, test]
|
9
|
+
@records[name]
|
10
|
+
end
|
11
|
+
|
12
|
+
def record(runner)
|
13
|
+
name = [runner.suite, runner.test]
|
14
|
+
@records[name] ||= []
|
15
|
+
@records[name] << runner
|
16
|
+
end
|
17
|
+
|
18
|
+
def assertion_count
|
19
|
+
@records.inject(0) { |acc, r| acc + r.last.last.assertions }
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
data/lib/minitest/test_runner.rb
CHANGED
@@ -1,3 +1,12 @@
|
|
1
1
|
module MiniTest
|
2
|
-
TestRunner
|
2
|
+
class TestRunner < Struct.new(:suite, :test, :assertions, :time, :exception)
|
3
|
+
def result
|
4
|
+
case exception
|
5
|
+
when nil then :pass
|
6
|
+
when Skip then :skip
|
7
|
+
when Assertion then :failure
|
8
|
+
else :error
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
3
12
|
end
|
data/test/test_helper.rb
CHANGED
@@ -13,7 +13,7 @@ end
|
|
13
13
|
|
14
14
|
if ENV["REPORTER"]
|
15
15
|
reporter_klass = MiniTest::Reporters.const_get(ENV["REPORTER"])
|
16
|
-
MiniTest::Reporters.use!
|
16
|
+
MiniTest::Reporters.use!(reporter_klass.new)
|
17
17
|
else
|
18
18
|
MiniTest::Reporters.use!(MiniTest::Reporters::DefaultReporter.new)
|
19
19
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: minitest-reporters
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.14.
|
4
|
+
version: 0.14.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-01-
|
12
|
+
date: 2013-01-17 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: minitest
|
@@ -127,7 +127,7 @@ files:
|
|
127
127
|
- LICENSE
|
128
128
|
- README.md
|
129
129
|
- Rakefile
|
130
|
-
- lib/minitest/
|
130
|
+
- lib/minitest/around_test_hooks.rb
|
131
131
|
- lib/minitest/extensible_backtrace_filter.rb
|
132
132
|
- lib/minitest/relative_position.rb
|
133
133
|
- lib/minitest/reporter.rb
|
@@ -141,6 +141,7 @@ files:
|
|
141
141
|
- lib/minitest/reporters/rubymine_reporter.rb
|
142
142
|
- lib/minitest/reporters/spec_reporter.rb
|
143
143
|
- lib/minitest/reporters/version.rb
|
144
|
+
- lib/minitest/test_recorder.rb
|
144
145
|
- lib/minitest/test_runner.rb
|
145
146
|
- minitest-reporters.gemspec
|
146
147
|
- test/gallery/bad_test.rb
|
@@ -163,7 +164,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
163
164
|
version: '0'
|
164
165
|
segments:
|
165
166
|
- 0
|
166
|
-
hash:
|
167
|
+
hash: 3603087580033239175
|
167
168
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
168
169
|
none: false
|
169
170
|
requirements:
|
@@ -172,7 +173,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
172
173
|
version: '0'
|
173
174
|
segments:
|
174
175
|
- 0
|
175
|
-
hash:
|
176
|
+
hash: 3603087580033239175
|
176
177
|
requirements: []
|
177
178
|
rubyforge_project: minitest-reporters
|
178
179
|
rubygems_version: 1.8.24
|
@@ -1,16 +0,0 @@
|
|
1
|
-
module MiniTest
|
2
|
-
module BeforeTestHook
|
3
|
-
def self.before_test(instance)
|
4
|
-
runner = MiniTest::Unit.runner
|
5
|
-
|
6
|
-
if runner.respond_to?(:before_test)
|
7
|
-
runner.before_test(instance.class, instance.__name__)
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
def before_setup
|
12
|
-
BeforeTestHook.before_test(self)
|
13
|
-
super
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|