minitest 5.10.3 → 5.18.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 32d4df1397bf8fc366b4b18555936d7c92853121
4
- data.tar.gz: 4000474506d5056f3117b1a93e1bc4019dfd15af
2
+ SHA256:
3
+ metadata.gz: 27d1d24e16ba576cc5a425d6e09e3de81465d10104a647c21ad9a5df36be1551
4
+ data.tar.gz: c3ca5dd490b7d08ee3254c7c8a680af0675f72e5356ad97b55dd1ec67e27251d
5
5
  SHA512:
6
- metadata.gz: 195277b6093c3650634809f445c274d8df6bfafb4f32be448f4cdde07de9edf47c64e4f05cdf3572bf79f61e2597ce33c2b7821cd147d4c8bd2f251451e86098
7
- data.tar.gz: a8a16930df76274303310ba4faf115914913bea38b559ec4edfad8ae2a835fb22e7d6308c88eadf93044ea422b334d65e33c8c59f15f0ece27a962b1fc8d7e9c
6
+ metadata.gz: f545c292aabb802ae8e03cea73bf2334a8ac6dea7da411b8e6ad48e036b00eabac550e5405c11aea175b30a9d65aced4e3601258081e845299ff6e1dbffd353d
7
+ data.tar.gz: ae62ac5c0f4218b66fe0206eb0205828c872531d6b68a4b0537fbe4b0a8753ccf604b4d11a11322dc329b275a1428683125c061e6e255f90ff5a076e4afb02ad
checksums.yaml.gz.sig CHANGED
Binary file
data/History.rdoc CHANGED
@@ -1,3 +1,267 @@
1
+ === 5.18.0 / 2023-03-04
2
+
3
+ * 2 major enhancements:
4
+
5
+ * Added assert_pattern & refute_pattern for pattern matching. (flavorjones)
6
+ * Added matching must_pattern_match & wont_pattern_match to minitest/spec.
7
+
8
+ * 1 bug fix:
9
+
10
+ * Support the new message format of NameError in Ruby 3.3 (mame)
11
+
12
+ === 5.17.0 / 2022-12-31
13
+
14
+ * 1 minor enhancement:
15
+
16
+ * Refactor setup hooks into a SETUP_METHODS constant. (MSP-Greg)
17
+
18
+ * 3 bug fixes:
19
+
20
+ * Fix kwargs for Mock calls to delegator. (blowmage)
21
+ * Fix kwargs for expectations. (bobmazanec, blowmage)
22
+ * Remove check for .b method. (tenderlove)
23
+
24
+ === 5.16.3 / 2022-08-17
25
+
26
+ * 2 bug fixes:
27
+
28
+ * Fixed exception sanitization by removing TypeError restriction on rescue.
29
+ * Use A instead of deprecated TESTOPTS in rake test:slow. (davidstosik)
30
+
31
+ === 5.16.2 / 2022-07-03
32
+
33
+ * 4 bug fixes:
34
+
35
+ * Added MT_KWARGS_HACK kludge for stub to deal with ruby 2.7 kwargs nastiness. (tsugimoto)
36
+ * In #expect, pop Hash class from args if $MT_KWARGS_HACK. (casperisfine)
37
+ * In above scenario, set expected kwargs (as Objects) based on actual kwargs.
38
+ * Nuke ivars if exception fails to marshal twice (eg better_errors). (irphilli)
39
+
40
+ === 5.16.1 / 2022-06-20
41
+
42
+ * 2 bug fixes:
43
+
44
+ * Apparently adding real kwarg support to mocks/stubs broke some code. Fixed.
45
+ * Use `MT_KWARGS_HACK=1` to activate the kludgy kwargs support w/ caveats.
46
+ * Clarified some doco wrt the block on #stub.
47
+
48
+ === 5.16.0 / 2022-06-14
49
+
50
+ * 2 major enhancements:
51
+
52
+ * Added Minitest::TestTask.
53
+ * Dropping ruby 2.2 - 2.5. 2.6 is DTM soon too.
54
+
55
+ * 11 minor enhancements:
56
+
57
+ * Added --show-skips option to show skips at end of run but not require --verbose. (MSP-Greg)
58
+ * Added Minitest.seed, the random seed used by the run.
59
+ * Calling `srand Minitest.seed` before all shuffles to ensure determinism.
60
+ * Extended #stub to handle kwargs for both block and call args. (SampsonCrowley)
61
+ * Extended Mock#__call to display kwargs.
62
+ * Extended Mock#expect to record kwargs.
63
+ * Extended Mock#method_missing to take kwargs & compare them against expected.
64
+ * Mock#method_missing displays better errors on arity mismatch.
65
+ * Removed minor optimization removing empty suites before run.
66
+ * Simplified test randomization (test order will change even with fixed seed).
67
+ * assert_match now returns the MatchData on success. (Nakilon)
68
+
69
+ * 3 bug fixes:
70
+
71
+ * (Re)Fixed marshalling of exceptions, neutering them in 2 passes.
72
+ * Fixed more problems with rdoc.
73
+ * Had to patch up mock and stub to deal with <=2.7 kwargs oddities
74
+
75
+ === 5.15.0 / 2021-12-14
76
+
77
+ * 1 major enhancement:
78
+
79
+ * assert_throws returns the value returned, if any. (volmer)
80
+
81
+ * 3 minor enhancements:
82
+
83
+ * Added -S <CODES> option to skip reporting of certain types of output
84
+ * Enable Ruby deprecation warnings by default. (casperisfine)
85
+ * Use Etc.nprocessors by default in order to maximize cpu usage. (tonytonyjan)
86
+
87
+ * 6 bug fixes:
88
+
89
+ * Close then unlink tempfiles on Windows. (nobu)
90
+ * Fixed #skip_until for windows paths. (MSP-Greg)
91
+ * Fixed a bunch of tests for jruby and windows. (MSP-Greg)
92
+ * Fixed marshalling of specs if they error. (tenderlove, jeremyevans, et al)
93
+ * Updated deprecation message for block expectations. (blowmage)
94
+ * Use Kernel.warn directly in expectations in case CUT defines their own warn. (firien)
95
+
96
+ === 5.14.4 / 2021-02-23
97
+
98
+ * 1 bug fix:
99
+
100
+ * Fixed deprecation warning using stub with methods using keyword arguments. (Nakilon)
101
+
102
+ === 5.14.3 / 2021-01-05
103
+
104
+ * 1 bug fix:
105
+
106
+ * Bumped require_ruby_version to < 4 (trunk = 3.1).
107
+
108
+ === 5.14.2 / 2020-08-31
109
+
110
+ * 1 bug fix:
111
+
112
+ * Bumped ruby version to include 3.0 (trunk).
113
+
114
+ === 5.14.1 / 2020-05-15
115
+
116
+ * 3 minor enhancements:
117
+
118
+ * Minitest.filter_backtrace returns original backtrace if filter comes back empty.
119
+ * Minitest::BacktraceFilter now returns entire backtrace if $MT_DEBUG set in env.
120
+ * Return true on a successful refute. (jusleg)
121
+
122
+ * 1 bug fix:
123
+
124
+ * Fixed expectation doco to not use global expectations.
125
+
126
+ === 5.14.0 / 2020-01-11
127
+
128
+ * 2 minor enhancements:
129
+
130
+ * Block-assertions (eg assert_output) now error if raised inside the block. (casperisfine)
131
+ * Changed assert_raises to only catch Assertion since that covers Skip and friends.
132
+
133
+ * 3 bug fixes:
134
+
135
+ * Added example for value wrapper with block to Expectations module. (stomar)
136
+ * Fixed use of must/wont_be_within_delta on Expectation instance. (stomar)
137
+ * Renamed UnexpectedError#exception to #error to avoid problems with reraising. (casperisfine)
138
+
139
+ === 5.13.0 / 2019-10-29
140
+
141
+ * 9 minor enhancements:
142
+
143
+ * Added Minitest::Guard#osx?
144
+ * Added examples to documentation for assert_raises. (lxxxvi)
145
+ * Added expectations #path_must_exist and #path_wont_exist. Not thrilled with the names.
146
+ * Added fail_after(year, month, day, msg) to allow time-bombing after a deadline.
147
+ * Added skip_until(year, month, day, msg) to allow deferring until a deadline.
148
+ * Deprecated Minitest::Guard#maglev?
149
+ * Deprecated Minitest::Guard#rubinius?
150
+ * Finally added assert_path_exists and refute_path_exists. (deivid-rodriguez)
151
+ * Refactored and pulled Assertions#things_to_diff out of #diff. (BurdetteLamar)
152
+
153
+ * 3 bug fixes:
154
+
155
+ * Fix autorun bug that affects fork exit status in tests. (dylanahsmith/jhawthorn)
156
+ * Improved documentation for _/value/expect, especially for blocks. (svoop)
157
+ * Support new Proc#to_s format. (ko1)
158
+
159
+ === 5.12.2 / 2019-09-28
160
+
161
+ * 1 bug fix:
162
+
163
+ * After chatting w/ @y-yagi and others, decided to lower support to include ruby 2.2.
164
+
165
+ === 5.12.1 / 2019-09-28
166
+
167
+ * 1 minor enhancement:
168
+
169
+ * Added documentation for Reporter classes. (sshaw)
170
+
171
+ * 3 bug fixes:
172
+
173
+ * Avoid using 'match?' to support older ruby versions. (y-yagi)
174
+ * Fixed broken link to reference on goodness-of-fit testing. (havenwood)
175
+ * Update requirements in readme and Rakefile/hoe spec.
176
+
177
+ === 5.12.0 / 2019-09-22
178
+
179
+ * 8 minor enhancements:
180
+
181
+ * Added a descriptive error if assert_output or assert_raises called without a block. (okuramasafumi)
182
+ * Changed mu_pp_for_diff to make having both \n and \\n easier to debug.
183
+ * Deprecated $N for specifying number of parallel test runners. Use MT_CPU.
184
+ * Deprecated use of global expectations. To be removed from MT6.
185
+ * Extended Assertions#mu_pp to encoding validity output for strings to improve diffs.
186
+ * Extended Assertions#mu_pp to output encoding and validity if invalid to improve diffs.
187
+ * Extended Assertions#mu_pp_for_diff to make escaped newlines more obvious in diffs.
188
+ * Fail gracefully when expectation used outside of `it`.
189
+
190
+ * 3 bug fixes:
191
+
192
+ * Check `option[:filter]` klass before match. Fixes 2.6 warning. (y-yagi)
193
+ * Fixed Assertions#diff from recalculating if set to nil
194
+ * Fixed spec section of readme to not use deprecated global expectations. (CheezItMan)
195
+
196
+ === 5.11.3 / 2018-01-26
197
+
198
+ * 1 bug fix:
199
+
200
+ * Pushed #error? up to Reportable module. (composerinteralia)
201
+
202
+ === 5.11.2 / 2018-01-25
203
+
204
+ * 1 minor enhancement:
205
+
206
+ * Reversed Test < Result. Back to < Runnable and using Reportable for shared code.
207
+
208
+ * 2 bug fixes:
209
+
210
+ * Fixed Result#location for instances of Test. (alexisbernard)
211
+ * Fixed deprecation message for Runnable#marshal_dump. (y-yagi)
212
+
213
+ === 5.11.1 / 2018-01-02
214
+
215
+ * 1 bug fix:
216
+
217
+ * Fixed Result (a superclass of Test) overriding Runnable's name accessors. (y-yagi, MSP-Greg)
218
+
219
+ === 5.11.0 / 2018-01-01
220
+
221
+ * 2 major enhancements:
222
+
223
+ * Added Minitest::Result and Minitest::Result.from(runnable).
224
+ * Changed Minitest::Test to subclass Result and refactored methods up.
225
+
226
+ * 7 minor enhancements:
227
+
228
+ * Added --no-plugins and MT_NO_PLUGINS to bypass MT plugin autoloading. Helps with bad actors installed globally.
229
+ * Added bench_performance_{logarithmic,power} for spec-style benchmarks. (rickhull)
230
+ * Added deprecation warning for Runnable#marshal_dump.
231
+ * Minitest.run_one_method now checks for instance of Result, not exact same class.
232
+ * Minitest::Test.run returns a Result version of self, not self.
233
+ * ProgressReporter#prerecord now explicitly prints klass.name. Allows for fakers.
234
+
235
+ * 4 bug fixes:
236
+
237
+ * Object.stub no longer calls the passed block if stubbed with a callable.
238
+ * Object.stub now passes blocks down to the callable result.
239
+ * Pushed Minitest::Test#time & #time_it up to Runnable.
240
+ * Test nil equality directly in assert_equal. Fixes #679. (voxik)
241
+
242
+ === 5.11.0b1 / 2017-12-20
243
+
244
+ * 2 major enhancements:
245
+
246
+ * Added Minitest::Result and Minitest::Result.from(runnable).
247
+ * Changed Minitest::Test to subclass Result and refactored methods up.
248
+
249
+ * 6 minor enhancements:
250
+
251
+ * Added --no-plugins and MT_NO_PLUGINS to bypass MT plugin autoloading. Helps with bad actors installed globally.
252
+ * Added bench_performance_{logarithmic,power} for spec-style benchmarks. (rickhull)
253
+ * Minitest.run_one_method now checks for instance of Result, not exact same class.
254
+ * Minitest::Test.run returns a Result version of self, not self.
255
+ * ProgressReporter#prerecord now explicitly prints klass.name. Allows for fakers.
256
+ * Removed Runnable.marshal_dump/load.
257
+
258
+ * 4 bug fixes:
259
+
260
+ * Object.stub no longer calls the passed block if stubbed with a callable.
261
+ * Object.stub now passes blocks down to the callable result.
262
+ * Pushed Minitest::Test#time & #time_it up to Runnable.
263
+ * Test nil equality directly in assert_equal. Fixes #679. (voxik)
264
+
1
265
  === 5.10.3 / 2017-07-21
2
266
 
3
267
  * 1 minor enhancement:
@@ -54,7 +318,7 @@
54
318
  * 2 bug fixes:
55
319
 
56
320
  * Re-release to refresh gem certificate signing. ugh.
57
- * Fixed hoe/minitest to not augment load path if we're actually testing minitest.
321
+ * Fixed hoe/minitest to not augment load path if we're actually testing minitest.
58
322
 
59
323
  === 5.9.0 / 2016-05-16
60
324
 
@@ -78,7 +342,7 @@
78
342
  * 2 bug fixes:
79
343
 
80
344
  * Re-release to refresh gem certificate signing. ugh.
81
- * Fixed hoe/minitest to not augment load path if we're actually testing minitest.
345
+ * Fixed hoe/minitest to not augment load path if we're actually testing minitest.
82
346
 
83
347
  === 5.8.4 / 2016-01-21
84
348
 
@@ -392,7 +656,7 @@ Minitest 5:
392
656
  * Added Minitest::Benchmark.
393
657
  * Your benchmarks need to move to their own subclass.
394
658
  * Benchmarks using the spec DSL have to have "Bench" somewhere in their describe.
395
- * MiniTest::Unit.after_tests moved to Minitest.after_tests
659
+ * MiniTest::Unit.after_tests moved to Minitest.after_run
396
660
  * MiniTest::Unit.autorun is now Minitest.autorun. Just require minitest/autorun pls.
397
661
  * Removed ParallelEach#grep since it isn't used anywhere.
398
662
  * Renamed Runnable#__name__ to Runnable#name (but uses @NAME internally).
@@ -1238,4 +1502,3 @@ back.
1238
1502
  * 1 major enhancement
1239
1503
 
1240
1504
  * Birthday!
1241
-
data/Manifest.txt CHANGED
@@ -17,10 +17,13 @@ lib/minitest/pride.rb
17
17
  lib/minitest/pride_plugin.rb
18
18
  lib/minitest/spec.rb
19
19
  lib/minitest/test.rb
20
+ lib/minitest/test_task.rb
20
21
  lib/minitest/unit.rb
21
22
  test/minitest/metametameta.rb
23
+ test/minitest/test_minitest_assertions.rb
22
24
  test/minitest/test_minitest_benchmark.rb
23
25
  test/minitest/test_minitest_mock.rb
24
26
  test/minitest/test_minitest_reporter.rb
25
27
  test/minitest/test_minitest_spec.rb
26
28
  test/minitest/test_minitest_test.rb
29
+ test/minitest/test_minitest_test_task.rb
data/README.rdoc CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  home :: https://github.com/seattlerb/minitest
4
4
  bugs :: https://github.com/seattlerb/minitest/issues
5
- rdoc :: http://docs.seattlerb.org/minitest
5
+ rdoc :: https://docs.seattlerb.org/minitest
6
6
  vim :: https://github.com/sunaku/vim-ruby-minitest
7
7
  emacs:: https://github.com/arthurnn/minitest-emacs
8
8
 
@@ -70,6 +70,7 @@ extract-method refactorings still apply.
70
70
  * minitest/mock - a simple and clean mock/stub system.
71
71
  * minitest/benchmark - an awesome way to assert your algorithm's performance.
72
72
  * minitest/pride - show your pride in testing!
73
+ * minitest/test_task - a full-featured and clean rake task generator.
73
74
  * Incredibly small and fast runner, but no bells and whistles.
74
75
  * Written by squishy human beings. Software can never be perfect. We will all eventually die.
75
76
 
@@ -126,13 +127,13 @@ Define your tests as methods beginning with +test_+.
126
127
 
127
128
  describe "when asked about cheeseburgers" do
128
129
  it "must respond positively" do
129
- @meme.i_can_has_cheezburger?.must_equal "OHAI!"
130
+ _(@meme.i_can_has_cheezburger?).must_equal "OHAI!"
130
131
  end
131
132
  end
132
133
 
133
134
  describe "when asked about blending possibilities" do
134
135
  it "won't say no" do
135
- @meme.will_it_blend?.wont_match /^no/i
136
+ _(@meme.will_it_blend?).wont_match /^no/i
136
137
  end
137
138
  end
138
139
  end
@@ -186,7 +187,7 @@ Output is tab-delimited to make it easy to paste into a spreadsheet.
186
187
  === Mocks
187
188
 
188
189
  Mocks and stubs defined using terminology by Fowler & Meszaros at
189
- http://www.martinfowler.com/bliki/TestDouble.html:
190
+ https://www.martinfowler.com/bliki/TestDouble.html:
190
191
 
191
192
  "Mocks are pre-programmed with expectations which form a specification
192
193
  of the calls they are expected to receive. They can throw an exception
@@ -220,9 +221,9 @@ verification to ensure they got all the calls they were expecting."
220
221
  end
221
222
  end
222
223
 
223
- **Multi-threading and Mocks**
224
+ ==== Multi-threading and Mocks
224
225
 
225
- Minitest mocks do not support multi-threading if it works, fine, if it doesn't
226
+ Minitest mocks do not support multi-threading. If it works, fine, if it doesn't
226
227
  you can use regular ruby patterns and facilities like local variables. Here's
227
228
  an example of asserting that code inside a thread is run:
228
229
 
@@ -237,7 +238,7 @@ an example of asserting that code inside a thread is run:
237
238
  === Stubs
238
239
 
239
240
  Mocks and stubs are defined using terminology by Fowler & Meszaros at
240
- http://www.martinfowler.com/bliki/TestDouble.html:
241
+ https://www.martinfowler.com/bliki/TestDouble.html:
241
242
 
242
243
  "Stubs provide canned answers to calls made during the test".
243
244
 
@@ -264,9 +265,8 @@ new non-existing method:
264
265
 
265
266
  === Running Your Tests
266
267
 
267
- Ideally, you'll use a rake task to run your tests, either piecemeal or
268
- all at once. Both rake and rails ship with rake tasks for running your
269
- tests. BUT! You don't have to:
268
+ Ideally, you'll use a rake task to run your tests (see below), either
269
+ piecemeal or all at once. BUT! You don't have to:
270
270
 
271
271
  % ruby -Ilib:test test/minitest/test_minitest_test.rb
272
272
  Run options: --seed 37685
@@ -294,6 +294,45 @@ provided via plugins. To see them, simply run with +--help+:
294
294
  -p, --pride Pride. Show your testing pride!
295
295
  -a, --autotest Connect to autotest server.
296
296
 
297
+ === Rake Tasks
298
+
299
+ You can set up a rake task to run all your tests by adding this to your Rakefile:
300
+
301
+ require "minitest/test_task"
302
+
303
+ Minitest::TestTask.create # named test, sensible defaults
304
+
305
+ # or more explicitly:
306
+
307
+ Minitest::TestTask.create(:test) do |t|
308
+ t.libs << "test"
309
+ t.libs << "lib"
310
+ t.warning = false
311
+ t.test_globs = ["test/**/*_test.rb"]
312
+ end
313
+
314
+ task :default => :test
315
+
316
+ Each of these will generate 4 tasks:
317
+
318
+ rake test :: Run the test suite.
319
+ rake test:cmd :: Print out the test command.
320
+ rake test:isolated :: Show which test files fail when run separately.
321
+ rake test:slow :: Show bottom 25 tests sorted by time.
322
+
323
+ === Rake Task Variables
324
+
325
+ There are a bunch of variables you can supply to rake to modify the run.
326
+
327
+ MT_LIB_EXTRAS :: Extra libs to dynamically override/inject for custom runs.
328
+ N :: -n: Tests to run (string or /regexp/).
329
+ X :: -x: Tests to exclude (string or /regexp/).
330
+ A :: Any extra arguments. Honors shell quoting.
331
+ MT_CPU :: How many threads to use for parallel test runs
332
+ SEED :: -s --seed Sets random seed.
333
+ TESTOPTS :: Deprecated, same as A
334
+ FILTER :: Deprecated, same as A
335
+
297
336
  == Writing Extensions
298
337
 
299
338
  To define a plugin, add a file named minitest/XXX_plugin.rb to your
@@ -364,6 +403,39 @@ Using our example above, here is how we might implement MyCI:
364
403
 
365
404
  == FAQ
366
405
 
406
+ === What versions are compatible with what? Or what versions are supported?
407
+
408
+ Minitest is a dependency of rails, which until fairly recently had an
409
+ overzealous backwards compatibility policy. As such, I'm stuck
410
+ supporting versions of ruby that are long past EOL. Hopefully I'll be
411
+ able to support only current versions of ruby sometime in the near
412
+ future.
413
+
414
+ (As of 2022-11-29)
415
+
416
+ Current versions of rails: (https://endoflife.date/rails)
417
+
418
+ | rails | min ruby | rec ruby | minitest | status | EOL Date |
419
+ |-------+----------+----------+----------+----------+------------|
420
+ | 7.0 | >= 2.7 | 3.1 | >= 5.1 | Current | 2025-06-01?|
421
+ | 6.1 | >= 2.5 | 3.0 | >= 5.1 | Maint | 2024-06-01?|
422
+ | 6.0 | >= 2.5 | 2.6 | >= 5.1 | Security | 2023-06-01 |
423
+ | 5.2 | >= 2.2.2 | 2.5 | ~> 5.1 | EOL | 2022-06-01 |
424
+
425
+ Current versions of ruby: (https://endoflife.date/ruby)
426
+
427
+ | ruby | Status | EOL Date |
428
+ |------+---------+------------|
429
+ | 3.1 | Current | 2025-12-25 |
430
+ | 3.0 | Maint | 2024-03-31 |
431
+ | 2.7 | Maint* | 2023-03-31 |
432
+ | 2.6 | EOL | 2022-03-31 |
433
+ | 2.5 | EOL | 2021-03-31 |
434
+
435
+ See also:
436
+
437
+ * https://www.fastruby.io/blog/ruby/rails/versions/compatibility-table.html
438
+
367
439
  === How to test SimpleDelegates?
368
440
 
369
441
  The following implementation and test:
@@ -379,7 +451,7 @@ The following implementation and test:
379
451
  end
380
452
 
381
453
  it "must respond to work" do
382
- @worker.must_respond_to :work
454
+ _(@worker).must_respond_to :work
383
455
  end
384
456
  end
385
457
 
@@ -434,11 +506,26 @@ you want to extend your test using setup/teardown via a module, just
434
506
  make sure you ALWAYS call super. before/after automatically call super
435
507
  for you, so make sure you don't do it twice.
436
508
 
509
+ === How to run code before a group of tests?
510
+
511
+ Use a constant with begin...end like this:
512
+
513
+ describe Blah do
514
+ SETUP = begin
515
+ # ... this runs once when describe Blah starts
516
+ end
517
+ # ...
518
+ end
519
+
520
+ This can be useful for expensive initializations or sharing state.
521
+ Remember, this is just ruby code, so you need to make sure this
522
+ technique and sharing state doesn't interfere with your tests.
523
+
437
524
  === Why am I seeing <tt>uninitialized constant MiniTest::Test (NameError)</tt>?
438
525
 
439
- Are you running the test with Bundler (e.g. via <tt>bundle exec</tt> )? If so,
526
+ Are you running the test with Bundler (e.g. via <tt>bundle exec</tt> )? If so,
440
527
  in order to require minitest, you must first add the <tt>gem 'minitest'</tt>
441
- to your Gemfile and run +bundle+. Once it's installed, you should be
528
+ to your Gemfile and run +bundle+. Once it's installed, you should be
442
529
  able to require minitest and run your tests.
443
530
 
444
531
  == Prominent Projects using Minitest:
@@ -454,6 +541,8 @@ able to require minitest and run your tests.
454
541
 
455
542
  == Developing Minitest:
456
543
 
544
+ Minitest requires {Hoe}[https://rubygems.org/gems/hoe].
545
+
457
546
  === Minitest's own tests require UTF-8 external encoding.
458
547
 
459
548
  This is a common problem in Windows, where the default external Encoding is
@@ -506,7 +595,7 @@ If you see failures like either of these, you are probably missing diff tool:
506
595
 
507
596
 
508
597
  If you use Cygwin or MSYS2 or similar there are packages that include a
509
- GNU diff for Widnows. If you don't, you can download GNU diffutils from
598
+ GNU diff for Windows. If you don't, you can download GNU diffutils from
510
599
  http://gnuwin32.sourceforge.net/packages/diffutils.htm
511
600
  (make sure to add it to your PATH).
512
601
 
@@ -532,6 +621,7 @@ minispec-metadata :: Metadata for describe/it blocks & CLI tag filter.
532
621
  E.g. <tt>it "requires JS driver", js: true do</tt> &
533
622
  <tt>ruby test.rb --tag js</tt> runs tests tagged :js.
534
623
  minispec-rails :: Minimal support to use Spec style in Rails 5+.
624
+ mini-apivore :: for swagger based automated API testing.
535
625
  minitest-around :: Around block for minitest. An alternative to
536
626
  setup/teardown dance.
537
627
  minitest-assert_errors :: Adds Minitest assertions to test for errors raised
@@ -548,6 +638,7 @@ minitest-capistrano :: Assertions and expectations for testing
548
638
  Capistrano recipes.
549
639
  minitest-capybara :: Capybara matchers support for minitest unit and
550
640
  spec.
641
+ minitest-cc :: It provides minimal information about code coverage.
551
642
  minitest-chef-handler :: Run Minitest suites as Chef report handlers
552
643
  minitest-ci :: CI reporter plugin for Minitest.
553
644
  minitest-context :: Defines contexts for code reuse in Minitest
@@ -574,12 +665,14 @@ minitest-firemock :: Makes your Minitest mocks more resilient.
574
665
  minitest-focus :: Focus on one test at a time.
575
666
  minitest-gcstats :: A minitest plugin that adds a report of the top
576
667
  tests by number of objects allocated.
668
+ minitest-global_expectations:: Support minitest expectation methods for all objects
577
669
  minitest-great_expectations :: Generally useful additions to minitest's
578
670
  assertions and expectations.
579
671
  minitest-growl :: Test notifier for minitest via growl.
580
672
  minitest-happy :: GLOBALLY ACTIVATE MINITEST PRIDE! RAWR!
581
- minitest-have_tag :: Adds Minitest assertions to test for the existence of
673
+ minitest-have_tag :: Adds Minitest assertions to test for the existence of
582
674
  HTML tags, including contents, within a provided string.
675
+ minitest-heat :: Reporting that builds a heat map of failure locations
583
676
  minitest-hooks :: Around and before_all/after_all/around_all hooks
584
677
  minitest-hyper :: Pretty, single-page HTML reports for your Minitest runs
585
678
  minitest-implicit-subject :: Implicit declaration of the test subject.
@@ -588,6 +681,7 @@ minitest-instrument :: Instrument ActiveSupport::Notifications when
588
681
  minitest-instrument-db :: Store information about speed of test execution
589
682
  provided by minitest-instrument in database.
590
683
  minitest-junit :: JUnit-style XML reporter for minitest.
684
+ minitest-keyword :: Use Minitest assertions with keyword arguments.
591
685
  minitest-libnotify :: Test notifier for minitest via libnotify.
592
686
  minitest-line :: Run test at line number.
593
687
  minitest-logger :: Define assert_log and enable minitest to test log messages.
@@ -599,6 +693,7 @@ minitest-matchers :: Adds support for RSpec-style matchers to
599
693
  minitest-matchers_vaccine :: Adds assertions that adhere to the matcher spec,
600
694
  but without any expectation infections.
601
695
  minitest-metadata :: Annotate tests with metadata (key-value).
696
+ minitest-mock_expectations :: Provides method call assertions for minitest.
602
697
  minitest-mongoid :: Mongoid assertion matchers for Minitest.
603
698
  minitest-must_not :: Provides must_not as an alias for wont in
604
699
  Minitest.
@@ -614,10 +709,10 @@ minitest-rails-capybara :: Capybara integration for Minitest::Rails.
614
709
  minitest-reporters :: Create customizable Minitest output formats.
615
710
  minitest-rg :: Colored red/green output for Minitest.
616
711
  minitest-rspec_mocks :: Use RSpec Mocks with Minitest.
617
- minitest-server :: minitest-server provides a client/server setup
618
- with your minitest process, allowing your test
712
+ minitest-server :: minitest-server provides a client/server setup
713
+ with your minitest process, allowing your test
619
714
  run to send its results directly to a handler.
620
- minitest-sequel :: Minitest assertions to speed-up development and
715
+ minitest-sequel :: Minitest assertions to speed-up development and
621
716
  testing of Ruby Sequel database setups.
622
717
  minitest-shared_description :: Support for shared specs and shared spec
623
718
  subclasses
@@ -642,16 +737,23 @@ minitest-stub-const :: Stub constants for the duration of a block.
642
737
  minitest-tags :: Add tags for minitest.
643
738
  minitest-unordered :: Adds a new assertion to minitest for checking the
644
739
  contents of a collection, ignoring element order.
645
- minitest-vcr :: Automatic cassette managment with Minitest::Spec
740
+ minitest-vcr :: Automatic cassette management with Minitest::Spec
646
741
  and VCR.
742
+ minitest_log :: Adds structured logging, data explication, and verdicts.
647
743
  minitest_owrapper :: Get tests results as a TestResult object.
648
744
  minitest_should :: Shoulda style syntax for minitest test::unit.
649
745
  minitest_tu_shim :: Bridges between test/unit and minitest.
650
746
  mongoid-minitest :: Minitest matchers for Mongoid.
747
+ mutant-minitest :: Minitest integration for mutant.
651
748
  pry-rescue :: A pry plugin w/ minitest support. See
652
749
  pry-rescue/minitest.rb.
750
+ rematch :: Declutter your test files from large hardcoded data
751
+ and update them automatically when your code changes.
653
752
  rspec2minitest :: Easily translate any RSpec matchers to Minitest
654
753
  assertions and expectations.
754
+ stubberry :: Multiple stubbing 'berries', sweet and useful
755
+ stub helpers and assertions. ( stub_must,
756
+ assert_method_called, stubbing ORM objects by id )
655
757
 
656
758
  == Unknown Extensions:
657
759
 
@@ -677,12 +779,11 @@ Authors... Please send me a pull request with a description of your minitest ext
677
779
 
678
780
  == Minitest related goods
679
781
 
680
- * minitest/pride fabric: http://www.spoonflower.com/fabric/3928730-again-by-katie_allen
782
+ * minitest/pride fabric: https://www.spoonflower.com/fabric/3928730-again-by-katie_allen
681
783
 
682
784
  == REQUIREMENTS:
683
785
 
684
- * Ruby 1.8.7+. No magic is involved. I hope.
685
- * NOTE: 1.8 and 1.9 will be dropped in minitest 6+.
786
+ * Ruby 2.3+. No magic is involved. I hope.
686
787
 
687
788
  == INSTALL:
688
789
 
data/Rakefile CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  require "rubygems"
4
4
  require "hoe"
5
+ $:.unshift "lib" # to pick up lib/minitest/test_task.rb when minitest not installed
5
6
 
6
7
  Hoe.plugin :seattlerb
7
8
  Hoe.plugin :rdoc
@@ -11,21 +12,7 @@ Hoe.spec "minitest" do
11
12
 
12
13
  license "MIT"
13
14
 
14
- ## TODO: uncomment this on the last point release on 5.x
15
- #
16
- # self.post_install_message = <<-"EOM"
17
- # NOTE: minitest 5 will be the last in the minitest family to support
18
- # ruby 1.8 and 1.9 (and maybe 2.0?). If you need to keep using 1.8
19
- # or 1.9, you need to pin your dependency to minitest with
20
- # something like "~> 5.0".
21
- #
22
- # Further, minitest 6 will be dropping the following:
23
- #
24
- # + MiniTest (it's been Minitest for *years*)
25
- # + MiniTest::Unit
26
- # + MiniTest::Unit::TestCase
27
- # + assert_send (unless you argue for it well)
28
- # EOM
15
+ require_ruby_version [">= 2.6", "< 4.0"]
29
16
  end
30
17
 
31
18
  desc "Find missing expectations"
@@ -35,7 +22,7 @@ task :specs do
35
22
  require "minitest/spec"
36
23
 
37
24
  pos_prefix, neg_prefix = "must", "wont"
38
- skip_re = /^(must|wont)$|wont_(throw)|must_(block|not?_|nothing|raise$)/x
25
+ skip_re = /^(must|wont)$|wont_(throw)|must_(block|not?_|nothing|send|raise$)/x
39
26
  dont_flip_re = /(must|wont)_(include|respond_to)/
40
27
 
41
28
  map = {
@@ -46,6 +33,8 @@ task :specs do
46
33
  /_includes/ => "_include",
47
34
  /(must|wont)_(.*_of|nil|silent|empty)/ => '\1_be_\2',
48
35
  /must_raises/ => "must_raise",
36
+ /(must|wont)_predicate/ => '\1_be',
37
+ /(must|wont)_path_exists/ => 'path_\1_exist',
49
38
  }
50
39
 
51
40
  expectations = Minitest::Expectations.public_instance_methods.map(&:to_s)