minitest-reporters 0.14.24 → 1.0.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,15 +0,0 @@
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 < 4.1.0 sends #record after all teardown hooks, so don't call
9
- # #after_test here.
10
- if MiniTest::Unit::VERSION > "4.1.0"
11
- MiniTest::Unit.runner.after_test(instance.class, instance.__name__)
12
- end
13
- end
14
- end
15
- end
@@ -1,38 +0,0 @@
1
- module MiniTest
2
- module Reporter
3
- def runner
4
- Unit.runner
5
- end
6
-
7
- def filter_backtrace(backtrace)
8
- MiniTest.filter_backtrace(backtrace)
9
- end
10
-
11
- def output
12
- runner.output
13
- end
14
-
15
- def verbose?
16
- runner.verbose
17
- end
18
-
19
- def print(*args)
20
- runner.output.print(*args)
21
- end
22
-
23
- def puts(*args)
24
- runner.output.puts(*args)
25
- end
26
-
27
- def before_suites(suites, type); end
28
- def after_suites(suites, type); end
29
- def before_suite(suite); end
30
- def after_suite(suite); end
31
- def before_test(suite, test); end
32
- def after_test(suite, test); end
33
- def pass(suite, test, test_runner); end
34
- def skip(suite, test, test_runner); end
35
- def failure(suite, test, test_runner); end
36
- def error(suite, test, test_runner); end
37
- end
38
- end
@@ -1,109 +0,0 @@
1
- require 'forwardable'
2
-
3
- module MiniTest
4
- # Runner for MiniTest that supports reporters.
5
- #
6
- # Based upon Ryan Davis of Seattle.rb's MiniTest (MIT License).
7
- #
8
- # @see https://github.com/seattlerb/minitest MiniTest
9
- class ReporterRunner < Unit
10
- extend Forwardable
11
-
12
- attr_accessor :reporters
13
- attr_reader :test_results
14
- attr_reader :suites_start_time
15
- attr_reader :suite_start_time
16
- attr_reader :test_start_time
17
-
18
- def_delegator :@test_recorder, :assertion_count
19
-
20
- def initialize
21
- super
22
- self.reporters = []
23
- @test_results = {}
24
- @test_recorder = TestRecorder.new
25
- @allow_default_output = true
26
- end
27
-
28
- def run_tests
29
- @allow_default_output = false
30
- super
31
- end
32
-
33
- def _run_suites(suites, type)
34
- @suites_start_time = Time.now
35
- count_tests!(suites, type)
36
- trigger_callback(:before_suites, suites, type)
37
- super(suites, type)
38
- ensure
39
- trigger_callback(:after_suites, suites, type)
40
- end
41
-
42
- def _run_suite(suite, type)
43
- @suite_start_time = Time.now
44
- trigger_callback(:before_suite, suite)
45
- super(suite, type)
46
- ensure
47
- trigger_callback(:after_suite, suite)
48
- end
49
-
50
- def before_test(suite, test)
51
- @test_start_time = Time.now
52
- trigger_callback(:before_test, suite, test)
53
- end
54
-
55
- def record(suite, test, assertions, time, exception)
56
- runner = TestRunner.new(suite,
57
- test.to_sym,
58
- assertions,
59
- time,
60
- exception)
61
-
62
- @test_results[suite] ||= {}
63
- @test_results[suite][test.to_sym] = runner
64
- @test_recorder.record(runner)
65
-
66
- # MiniTest < 4.1.0 sends #record after all teardown hooks, so explicitly
67
- # call #after_test here after recording.
68
- after_test(suite, test) if Unit::VERSION <= "4.1.0"
69
- end
70
-
71
- def after_test(suite, test)
72
- runners = @test_recorder[suite, test.to_sym]
73
-
74
- runners.each do |runner|
75
- trigger_callback(runner.result, suite, test.to_sym, runner)
76
- end
77
-
78
- trigger_callback(:after_test, suite, test.to_sym)
79
- end
80
-
81
- # Stub out the three IO methods used by the built-in reporter.
82
- def puts(*args)
83
- super if @allow_default_output
84
- end
85
-
86
- def print(*args)
87
- super if @allow_default_output
88
- end
89
-
90
- def status(io = output)
91
- super if @allow_default_output
92
- end
93
-
94
- private
95
-
96
- def trigger_callback(callback, *args)
97
- reporters.each { |r| r.public_send(callback, *args) }
98
- end
99
-
100
- def count_tests!(suites, type)
101
- filter = options[:filter] || '/./'
102
- filter = Regexp.new $1 if filter =~ /\/(.*)\//
103
-
104
- @test_count = suites.inject(0) do |acc, suite|
105
- acc + suite.send("#{type}_methods").grep(filter).length
106
- end
107
- end
108
- end
109
- end
@@ -1,32 +0,0 @@
1
- begin
2
- require "guard/minitest/notifier"
3
- rescue LoadError
4
- puts "You need guard-minitest to use this reporter."
5
- exit 1
6
- end
7
-
8
- module MiniTest
9
- module Reporters
10
- class GuardReporter
11
- include Reporter
12
-
13
- def notifier_class
14
- if ::Guard.const_defined? "MinitestNotifier"
15
- # old guard-minitest API prior to 1.0.0.beta.2
16
- ::Guard::MinitestNotifier
17
- elsif ::Guard.const_defined? "Minitest" and ::Guard::Minitest.const_defined? "Notifier"
18
- # new guard-minitest API, by 02b46ee in between
19
- # 1.0.0.beta1 and 1.0.0.beta.2
20
- ::Guard::Minitest::Notifier
21
- end
22
- end
23
-
24
- def after_suites(*args)
25
- duration = Time.now - runner.suites_start_time
26
- notifier_class.notify(runner.test_count, runner.assertion_count,
27
- runner.failures, runner.errors,
28
- runner.skips, duration)
29
- end
30
- end
31
- end
32
- end
@@ -1,22 +0,0 @@
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
@@ -1,12 +0,0 @@
1
- module MiniTest
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
12
- end
@@ -1,39 +0,0 @@
1
- require_relative "../../test_helper"
2
-
3
- module MiniTestReportersTest
4
- class ReporterTest < TestCase
5
- def setup
6
- klass = Class.new do
7
- include MiniTest::Reporter
8
- end
9
-
10
- @reporter = klass.new
11
- end
12
-
13
- def test_callbacks
14
- [
15
- :before_suites, :after_suite, :before_suite, :after_suite, :before_test, :after_test,
16
- :pass, :skip, :failure, :error
17
- ].each { |method| assert_respond_to @reporter, method }
18
- end
19
-
20
- def test_runner
21
- assert_kind_of MiniTest::Unit, @reporter.runner
22
- end
23
-
24
- def test_output
25
- assert_equal MiniTest::Unit.output, @reporter.output
26
- end
27
-
28
- def test_verbose
29
- refute @reporter.verbose?
30
-
31
- begin
32
- @reporter.runner.verbose = true
33
- assert @reporter.verbose?
34
- ensure
35
- @reporter.runner.verbose = false
36
- end
37
- end
38
- end
39
- end