minitest 5.10.3 → 5.18.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,35 +1,36 @@
1
1
  require "minitest/autorun"
2
2
  require "minitest/metametameta"
3
+ require "forwardable"
4
+
5
+ class Runnable
6
+ def woot
7
+ assert true
8
+ end
9
+ end
3
10
 
4
11
  class TestMinitestReporter < MetaMetaMetaTestCase
5
12
 
6
13
  attr_accessor :r, :io
7
14
 
8
15
  def new_composite_reporter
16
+ # Ruby bug in older versions of 2.2 & 2.3 on all platforms
17
+ # Latest Windows builds were 2.2.6 and 2.3.3. Latest Ruby releases were
18
+ # 2.2.10 and 2.3.8.
19
+ skip if windows? && RUBY_VERSION < '2.4'
9
20
  reporter = Minitest::CompositeReporter.new
10
21
  reporter << Minitest::SummaryReporter.new(self.io)
11
22
  reporter << Minitest::ProgressReporter.new(self.io)
12
23
 
13
- def reporter.first
14
- reporters.first
15
- end
16
-
17
- def reporter.results
18
- first.results
19
- end
20
-
21
- def reporter.count
22
- first.count
23
- end
24
-
25
- def reporter.assertions
26
- first.assertions
27
- end
24
+ # eg reporter.results -> reporters.first.results
25
+ reporter.extend Forwardable
26
+ reporter.delegate :first => :reporters
27
+ reporter.delegate %i[results count assertions options to_s] => :first
28
28
 
29
29
  reporter
30
30
  end
31
31
 
32
32
  def setup
33
+ super
33
34
  self.io = StringIO.new("")
34
35
  self.r = new_composite_reporter
35
36
  end
@@ -42,6 +43,7 @@ class TestMinitestReporter < MetaMetaMetaTestCase
42
43
  rescue => e
43
44
  e
44
45
  end)
46
+ @et = Minitest::Result.from @et
45
47
  end
46
48
  @et
47
49
  end
@@ -54,12 +56,13 @@ class TestMinitestReporter < MetaMetaMetaTestCase
54
56
  rescue Minitest::Assertion => e
55
57
  e
56
58
  end
59
+ @ft = Minitest::Result.from @ft
57
60
  end
58
61
  @ft
59
62
  end
60
63
 
61
64
  def passing_test
62
- @pt ||= Minitest::Test.new(:woot)
65
+ @pt ||= Minitest::Result.from Minitest::Test.new(:woot)
63
66
  end
64
67
 
65
68
  def skip_test
@@ -70,6 +73,7 @@ class TestMinitestReporter < MetaMetaMetaTestCase
70
73
  rescue Minitest::Assertion => e
71
74
  e
72
75
  end
76
+ @st = Minitest::Result.from @st
73
77
  end
74
78
  @st
75
79
  end
@@ -77,17 +81,35 @@ class TestMinitestReporter < MetaMetaMetaTestCase
77
81
  def test_to_s
78
82
  r.record passing_test
79
83
  r.record fail_test
80
- assert_match "woot", r.first.to_s
84
+ assert_match "woot", r.to_s
85
+ end
86
+
87
+ def test_options_skip_F
88
+ r.options[:skip] = "F"
89
+
90
+ r.record passing_test
91
+ r.record fail_test
92
+
93
+ refute_match "woot", r.to_s
94
+ end
95
+
96
+ def test_options_skip_E
97
+ r.options[:skip] = "E"
98
+
99
+ r.record passing_test
100
+ r.record error_test
101
+
102
+ refute_match "RuntimeError: no", r.to_s
81
103
  end
82
104
 
83
105
  def test_passed_eh_empty
84
- assert r.passed?
106
+ assert_predicate r, :passed?
85
107
  end
86
108
 
87
109
  def test_passed_eh_failure
88
110
  r.results << fail_test
89
111
 
90
- refute r.passed?
112
+ refute_predicate r, :passed?
91
113
  end
92
114
 
93
115
  SKIP_MSG = "\n\nYou have skipped tests. Run with --verbose for details."
@@ -97,7 +119,7 @@ class TestMinitestReporter < MetaMetaMetaTestCase
97
119
 
98
120
  r.results << error_test
99
121
 
100
- refute r.passed?
122
+ refute_predicate r, :passed?
101
123
 
102
124
  r.report
103
125
 
@@ -117,7 +139,7 @@ class TestMinitestReporter < MetaMetaMetaTestCase
117
139
  end
118
140
 
119
141
  def test_passed_eh_skipped_verbose
120
- r.first.options[:verbose] = true
142
+ r.options[:verbose] = true
121
143
 
122
144
  r.start
123
145
  r.results << skip_test
@@ -145,6 +167,7 @@ class TestMinitestReporter < MetaMetaMetaTestCase
145
167
  end
146
168
 
147
169
  def test_record_fail
170
+ fail_test = self.fail_test
148
171
  r.record fail_test
149
172
 
150
173
  assert_equal "F", io.string
@@ -154,6 +177,7 @@ class TestMinitestReporter < MetaMetaMetaTestCase
154
177
  end
155
178
 
156
179
  def test_record_error
180
+ error_test = self.error_test
157
181
  r.record error_test
158
182
 
159
183
  assert_equal "E", io.string
@@ -163,6 +187,7 @@ class TestMinitestReporter < MetaMetaMetaTestCase
163
187
  end
164
188
 
165
189
  def test_record_skip
190
+ skip_test = self.skip_test
166
191
  r.record skip_test
167
192
 
168
193
  assert_equal "S", io.string