minitest-reporters 0.14.24 → 1.0.0.beta1

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.
@@ -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