spec 5.0.14

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.
Files changed (51) hide show
  1. checksums.yaml +7 -0
  2. data/.autotest +34 -0
  3. data/.gitignore +3 -0
  4. data/History.txt +911 -0
  5. data/Manifest.txt +26 -0
  6. data/README.txt +497 -0
  7. data/Rakefile +214 -0
  8. data/design_rationale.rb +52 -0
  9. data/lib/hoe/minitest.rb +26 -0
  10. data/lib/minitest/assertions.rb +649 -0
  11. data/lib/minitest/autorun.rb +12 -0
  12. data/lib/minitest/benchmark.rb +423 -0
  13. data/lib/minitest/expectations.rb +268 -0
  14. data/lib/minitest/hell.rb +11 -0
  15. data/lib/minitest/mock.rb +220 -0
  16. data/lib/minitest/parallel_each.rb +120 -0
  17. data/lib/minitest/pride.rb +4 -0
  18. data/lib/minitest/pride_plugin.rb +143 -0
  19. data/lib/minitest/spec.rb +292 -0
  20. data/lib/minitest/test.rb +272 -0
  21. data/lib/minitest/unit.rb +45 -0
  22. data/lib/minitest.rb +839 -0
  23. data/lib/spec.rb +3 -0
  24. data/readme.md +7 -0
  25. data/release_notes.md +49 -0
  26. data/spec.gemspec +36 -0
  27. data/test/manual/appium.rb +14 -0
  28. data/test/manual/appium_after_last.rb +24 -0
  29. data/test/manual/appium_before_first.rb +23 -0
  30. data/test/manual/assert.rb +61 -0
  31. data/test/manual/before_first_0.rb +27 -0
  32. data/test/manual/before_first_1.rb +29 -0
  33. data/test/manual/debug.rb +37 -0
  34. data/test/manual/do_end.rb +31 -0
  35. data/test/manual/raise.rb +61 -0
  36. data/test/manual/run2.rb +74 -0
  37. data/test/manual/run3.rb +91 -0
  38. data/test/manual/setup.rb +13 -0
  39. data/test/manual/simple.rb +19 -0
  40. data/test/manual/simple2.rb +20 -0
  41. data/test/manual/t.rb +11 -0
  42. data/test/manual/trace.rb +19 -0
  43. data/test/manual/trace2.rb +15 -0
  44. data/test/minitest/metametameta.rb +78 -0
  45. data/test/minitest/test_helper.rb +20 -0
  46. data/test/minitest/test_minitest_benchmark.rb +131 -0
  47. data/test/minitest/test_minitest_mock.rb +490 -0
  48. data/test/minitest/test_minitest_reporter.rb +270 -0
  49. data/test/minitest/test_minitest_spec.rb +794 -0
  50. data/test/minitest/test_minitest_unit.rb +1846 -0
  51. metadata +147 -0
@@ -0,0 +1,270 @@
1
+ require "minitest/autorun"
2
+ require "minitest/metametameta"
3
+ require 'minitest/test_helper'
4
+
5
+ class TestMinitestReporter < Minitest::Test
6
+
7
+ attr_accessor :r, :io
8
+
9
+ def new_composite_reporter
10
+ reporter = Minitest::CompositeReporter.new
11
+ reporter << Minitest::SummaryReporter.new(self.io)
12
+ reporter << Minitest::ProgressReporter.new(self.io)
13
+
14
+ def reporter.first
15
+ reporters.first
16
+ end
17
+
18
+ def reporter.results
19
+ first.results
20
+ end
21
+
22
+ def reporter.count
23
+ first.count
24
+ end
25
+
26
+ def reporter.assertions
27
+ first.assertions
28
+ end
29
+
30
+ reporter
31
+ end
32
+
33
+ def setup
34
+ self.io = StringIO.new("")
35
+ self.r = new_composite_reporter
36
+ end
37
+
38
+ def error_test
39
+ unless defined? @et then
40
+ @et = Minitest::Test.new(:woot)
41
+ @et.failures << Minitest::UnexpectedError.new(begin
42
+ raise "no"
43
+ rescue => e
44
+ e
45
+ end)
46
+ end
47
+ @et
48
+ end
49
+
50
+ def fail_test
51
+ unless defined? @ft then
52
+ @ft = Minitest::Test.new(:woot)
53
+ @ft.failures << begin
54
+ raise Minitest::Assertion, "boo"
55
+ rescue Minitest::Assertion => e
56
+ e
57
+ end
58
+ end
59
+ @ft
60
+ end
61
+
62
+ def passing_test
63
+ @pt ||= Minitest::Test.new(:woot)
64
+ end
65
+
66
+ def skip_test
67
+ unless defined? @st then
68
+ @st = Minitest::Test.new(:woot)
69
+ @st.failures << Minitest::Skip.new
70
+ end
71
+ @st
72
+ end
73
+
74
+ def test_passed_eh_empty
75
+ assert r.passed?
76
+ end
77
+
78
+ def test_passed_eh_failure
79
+ r.results << fail_test
80
+
81
+ refute r.passed?
82
+ end
83
+
84
+ def test_passed_eh_error
85
+ r.results << error_test
86
+
87
+ refute r.passed?
88
+ end
89
+
90
+ def test_passed_eh_skipped
91
+ r.results << skip_test
92
+
93
+ assert r.passed?
94
+ end
95
+
96
+ def test_start
97
+ r.start
98
+
99
+ exp = "Run options: \n\n# Running:\n\n"
100
+
101
+ assert_equal exp, io.string
102
+ end
103
+
104
+ def test_record_pass
105
+ r.record passing_test
106
+
107
+ assert_equal ".", io.string
108
+ assert_empty r.results
109
+ assert_equal 1, r.count
110
+ assert_equal 0, r.assertions
111
+ end
112
+
113
+ def test_record_fail
114
+ r.record fail_test
115
+
116
+ assert_equal "F", io.string
117
+ assert_equal [fail_test], r.results
118
+ assert_equal 1, r.count
119
+ assert_equal 0, r.assertions
120
+ end
121
+
122
+ def test_record_error
123
+ r.record error_test
124
+
125
+ assert_equal "E", io.string
126
+ assert_equal [error_test], r.results
127
+ assert_equal 1, r.count
128
+ assert_equal 0, r.assertions
129
+ end
130
+
131
+ def test_record_skip
132
+ r.record skip_test
133
+
134
+ assert_equal "S", io.string
135
+ assert_equal [skip_test], r.results
136
+ assert_equal 1, r.count
137
+ assert_equal 0, r.assertions
138
+ end
139
+
140
+ def normalize_output output
141
+ output.sub!(/Finished in .*/, "Finished in 0.00")
142
+ output.sub!(/Loaded suite .*/, 'Loaded suite blah')
143
+
144
+ output.gsub!(/ = \d+.\d\d s = /, ' = 0.00 s = ')
145
+ output.gsub!(/0x[A-Fa-f0-9]+/, '0xXXX')
146
+ output.gsub!(/ +$/, '')
147
+
148
+ if windows? then
149
+ output.gsub!(/\[(?:[A-Za-z]:)?[^\]:]+:\d+\]/, '[FILE:LINE]')
150
+ output.gsub!(/^(\s+)(?:[A-Za-z]:)?[^:]+:\d+:in/, '\1FILE:LINE:in')
151
+ else
152
+ output.gsub!(/\[[^\]:]+:\d+\]/, '[FILE:LINE]')
153
+ output.gsub!(/^(\s+)[^:]+:\d+:in/, '\1FILE:LINE:in')
154
+ end
155
+
156
+ output
157
+ end
158
+
159
+ def test_report_empty
160
+ r.start
161
+ r.report
162
+
163
+ exp = clean <<-EOM
164
+ Run options:
165
+
166
+ # Running:
167
+
168
+
169
+
170
+ Finished in 0.00
171
+
172
+ 0 runs, 0 assertions, 0 failures, 0 errors, 0 skips
173
+ EOM
174
+
175
+
176
+ assert_equal exp, normalize_output(io.string)
177
+ end
178
+
179
+ def test_report_passing
180
+ r.start
181
+ r.record passing_test
182
+ r.report
183
+
184
+ exp = clean <<-EOM
185
+ Run options:
186
+
187
+ # Running:
188
+
189
+ .
190
+
191
+ Finished in 0.00
192
+
193
+ 1 runs, 0 assertions, 0 failures, 0 errors, 0 skips
194
+ EOM
195
+
196
+
197
+ assert_equal exp, normalize_output(io.string)
198
+ end
199
+
200
+ def test_report_failure
201
+ r.start
202
+ r.record fail_test
203
+ r.report
204
+
205
+ exp = clean <<-EOM
206
+ Run options:
207
+
208
+ # Running:
209
+
210
+ F
211
+
212
+ Finished in 0.00
213
+
214
+ 1) Failure:
215
+ Minitest::Test#woot [FILE:LINE]:
216
+ boo
217
+
218
+ 1 runs, 0 assertions, 1 failures, 0 errors, 0 skips
219
+ EOM
220
+
221
+
222
+ assert_equal exp, normalize_output(io.string)
223
+ end
224
+
225
+ def test_report_error
226
+ r.start
227
+ r.record error_test
228
+ r.report
229
+
230
+ exp = clean <<-EOM
231
+ Run options:
232
+
233
+ # Running:
234
+
235
+ E
236
+
237
+ Finished in 0.00
238
+
239
+ 1) Error:
240
+ Minitest::Test#woot:
241
+ RuntimeError: no
242
+ FILE:LINE:in `error_test'
243
+ FILE:LINE:in `test_report_error'
244
+
245
+ 1 runs, 0 assertions, 0 failures, 1 errors, 0 skips
246
+ EOM
247
+
248
+ assert_equal exp, normalize_output(io.string)
249
+ end
250
+
251
+ def test_report_skipped
252
+ r.start
253
+ r.record skip_test
254
+ r.report
255
+
256
+ exp = clean <<-EOM
257
+ Run options:
258
+
259
+ # Running:
260
+
261
+ S
262
+
263
+ Finished in 0.00
264
+
265
+ 1 runs, 0 assertions, 0 failures, 0 errors, 1 skips
266
+ EOM
267
+
268
+ assert_equal exp, normalize_output(io.string)
269
+ end
270
+ end