minitest 5.14.3 → 5.16.0

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.
@@ -48,9 +48,11 @@ class TestMinitestUnit < MetaMetaMetaTestCase
48
48
  "test/test_autotest.rb:62:in `test_add_exception'"]
49
49
  ex = util_expand_bt ex
50
50
 
51
- fu = Minitest.filter_backtrace(bt)
51
+ Minitest::Test.io_lock.synchronize do # try not to trounce in parallel
52
+ fu = Minitest.filter_backtrace(bt)
52
53
 
53
- assert_equal ex, fu
54
+ assert_equal ex, fu
55
+ end
54
56
  end
55
57
 
56
58
  def test_filter_backtrace_all_unit
@@ -71,8 +73,10 @@ class TestMinitestUnit < MetaMetaMetaTestCase
71
73
  bt = util_expand_bt bt
72
74
 
73
75
  ex = ["-e:1"]
74
- fu = Minitest.filter_backtrace bt
75
- assert_equal ex, fu
76
+ Minitest::Test.io_lock.synchronize do # try not to trounce in parallel
77
+ fu = Minitest.filter_backtrace bt
78
+ assert_equal ex, fu
79
+ end
76
80
  end
77
81
 
78
82
  def test_filter_backtrace__empty
@@ -95,24 +99,26 @@ class TestMinitestUnit < MetaMetaMetaTestCase
95
99
  end
96
100
 
97
101
  expected = clean <<-EOM
98
- EF
102
+ FE
99
103
 
100
104
  Finished in 0.00
101
105
 
102
- 1) Error:
103
- FakeNamedTestXX#test_this_is_non_ascii_failure_message:
104
- RuntimeError: ЁЁЁ
105
- FILE:LINE:in `test_this_is_non_ascii_failure_message'
106
-
107
- 2) Failure:
106
+ 1) Failure:
108
107
  FakeNamedTestXX#test_this_is_not_ascii_assertion [FILE:LINE]:
109
108
  Expected: \"ЁЁЁ\"
110
109
  Actual: \"ёёё\"
111
110
 
111
+ 2) Error:
112
+ FakeNamedTestXX#test_this_is_non_ascii_failure_message:
113
+ RuntimeError: ЁЁЁ
114
+ FILE:LINE:in `test_this_is_non_ascii_failure_message'
115
+
112
116
  2 runs, 1 assertions, 1 failures, 1 errors, 0 skips
113
117
  EOM
114
118
 
115
- assert_report expected
119
+ Minitest::Test.io_lock.synchronize do # try not to trounce in parallel
120
+ assert_report expected
121
+ end
116
122
  end
117
123
 
118
124
  def test_passed_eh_teardown_good
@@ -158,11 +164,7 @@ class TestMinitestUnit < MetaMetaMetaTestCase
158
164
  end
159
165
 
160
166
  def util_expand_bt bt
161
- if RUBY_VERSION >= "1.9.0" then
162
- bt.map { |f| (f =~ /^\./) ? File.expand_path(f) : f }
163
- else
164
- bt
165
- end
167
+ bt.map { |f| (f =~ /^\./) ? File.expand_path(f) : f }
166
168
  end
167
169
  end
168
170
 
@@ -254,7 +256,7 @@ class TestMinitestRunner < MetaMetaMetaTestCase
254
256
  end
255
257
 
256
258
  expected = clean <<-EOM
257
- E.
259
+ .E
258
260
 
259
261
  Finished in 0.00
260
262
 
@@ -301,7 +303,7 @@ class TestMinitestRunner < MetaMetaMetaTestCase
301
303
  setup_basic_tu
302
304
 
303
305
  expected = clean <<-EOM
304
- F.
306
+ .F
305
307
 
306
308
  Finished in 0.00
307
309
 
@@ -328,6 +330,10 @@ class TestMinitestRunner < MetaMetaMetaTestCase
328
330
  end
329
331
  end
330
332
 
333
+ def test_seed # this is set for THIS run, so I'm not testing it's actual value
334
+ assert_instance_of Integer, Minitest.seed
335
+ end
336
+
331
337
  def test_run_failing_filtered
332
338
  setup_basic_tu
333
339
 
@@ -485,7 +491,7 @@ class TestMinitestRunner < MetaMetaMetaTestCase
485
491
  end
486
492
 
487
493
  expected = clean <<-EOM
488
- S.
494
+ .S
489
495
 
490
496
  Finished in 0.00
491
497
 
@@ -512,8 +518,8 @@ class TestMinitestRunner < MetaMetaMetaTestCase
512
518
  end
513
519
 
514
520
  expected = clean <<-EOM
515
- FakeNamedTestXX#test_skip = 0.00 s = S
516
521
  FakeNamedTestXX#test_something = 0.00 s = .
522
+ FakeNamedTestXX#test_skip = 0.00 s = S
517
523
 
518
524
  Finished in 0.00
519
525
 
@@ -527,6 +533,33 @@ class TestMinitestRunner < MetaMetaMetaTestCase
527
533
  assert_report expected, %w[--seed 42 --verbose]
528
534
  end
529
535
 
536
+ def test_run_skip_show_skips
537
+ @tu =
538
+ Class.new FakeNamedTest do
539
+ def test_something
540
+ assert true
541
+ end
542
+
543
+ def test_skip
544
+ skip "not yet"
545
+ end
546
+ end
547
+
548
+ expected = clean <<-EOM
549
+ .S
550
+
551
+ Finished in 0.00
552
+
553
+ 1) Skipped:
554
+ FakeNamedTestXX#test_skip [FILE:LINE]:
555
+ not yet
556
+
557
+ 2 runs, 1 assertions, 0 failures, 0 errors, 1 skips
558
+ EOM
559
+
560
+ assert_report expected, %w[--seed 42 --show-skips]
561
+ end
562
+
530
563
  def test_run_with_other_runner
531
564
  @tu =
532
565
  Class.new FakeNamedTest do
@@ -627,6 +660,8 @@ class TestMinitestRunner < MetaMetaMetaTestCase
627
660
  2 runs, 2 assertions, 0 failures, 0 errors, 0 skips
628
661
  EOM
629
662
 
663
+ skip if Minitest.parallel_executor.size < 2 # locks up test runner if 1 CPU
664
+
630
665
  assert_report(expected) do |reporter|
631
666
  reporter.extend(Module.new {
632
667
  define_method("record") do |result|
@@ -803,6 +838,63 @@ class TestMinitestRunnable < Minitest::Test
803
838
  assert_equal @tc.failures, over_the_wire.failures
804
839
  assert_equal @tc.klass, over_the_wire.klass
805
840
  end
841
+
842
+ def test_spec_marshal_with_exception
843
+ klass = describe("whatever") {
844
+ it("raises, badly") {
845
+ raise Class.new(StandardError), "this is bad!"
846
+ }
847
+ }
848
+
849
+ rm = klass.runnable_methods.first
850
+
851
+ # Run the test
852
+ @tc = klass.new(rm).run
853
+
854
+ assert_kind_of Minitest::Result, @tc
855
+ assert_instance_of Minitest::UnexpectedError, @tc.failure
856
+
857
+ msg = @tc.failure.error.message
858
+ assert_includes msg, "Neutered Exception #<Class:"
859
+ assert_includes msg, "this is bad!"
860
+
861
+ # Pass it over the wire
862
+ over_the_wire = Marshal.load Marshal.dump @tc
863
+
864
+ assert_equal @tc.time, over_the_wire.time
865
+ assert_equal @tc.name, over_the_wire.name
866
+ assert_equal @tc.assertions, over_the_wire.assertions
867
+ assert_equal @tc.failures, over_the_wire.failures
868
+ assert_equal @tc.klass, over_the_wire.klass
869
+ end
870
+
871
+ def test_spec_marshal_with_exception_nameerror
872
+ klass = describe("whatever") {
873
+ it("raises nameerror") {
874
+ NOPE::does_not_exist
875
+ }
876
+ }
877
+
878
+ rm = klass.runnable_methods.first
879
+
880
+ # Run the test
881
+ @tc = klass.new(rm).run
882
+
883
+ assert_kind_of Minitest::Result, @tc
884
+ assert_instance_of Minitest::UnexpectedError, @tc.failure
885
+
886
+ msg = @tc.failure.error.message
887
+ assert_includes msg, "uninitialized constant TestMinitestRunnable::NOPE"
888
+
889
+ # Pass it over the wire
890
+ over_the_wire = Marshal.load Marshal.dump @tc
891
+
892
+ assert_equal @tc.time, over_the_wire.time
893
+ assert_equal @tc.name, over_the_wire.name
894
+ assert_equal @tc.assertions, over_the_wire.assertions
895
+ assert_equal @tc.failures, over_the_wire.failures
896
+ assert_equal @tc.klass, over_the_wire.klass
897
+ end
806
898
  end
807
899
 
808
900
  class TestMinitestTest < TestMinitestRunnable
@@ -848,19 +940,25 @@ class TestMinitestUnitTestCase < Minitest::Test
848
940
  $VERBOSE = orig_verbose
849
941
  end
850
942
 
943
+ def sample_test_case(rand)
944
+ srand rand
945
+ Class.new FakeNamedTest do
946
+ 100.times do |i|
947
+ define_method("test_#{i}") { assert true }
948
+ end
949
+ end.runnable_methods
950
+ end
951
+
952
+ # srand varies with OS
851
953
  def test_runnable_methods_random
852
954
  @assertion_count = 0
853
955
 
854
- sample_test_case = Class.new FakeNamedTest do
855
- def self.test_order; :random; end
856
- def test_test1; assert "does not matter" end
857
- def test_test2; assert "does not matter" end
858
- def test_test3; assert "does not matter" end
859
- end
956
+ random_tests_1 = sample_test_case 42
957
+ random_tests_2 = sample_test_case 42
958
+ random_tests_3 = sample_test_case 1_000
860
959
 
861
- srand 42
862
- expected = %w[test_test2 test_test1 test_test3]
863
- assert_equal expected, sample_test_case.runnable_methods
960
+ assert_equal random_tests_1, random_tests_2
961
+ assert_equal random_tests_1, random_tests_3
864
962
  end
865
963
 
866
964
  def test_runnable_methods_sorted
@@ -0,0 +1,46 @@
1
+ require "minitest/autorun"
2
+ require "hoe"
3
+
4
+ require "minitest/test_task"
5
+
6
+ Hoe.load_plugins # make sure Hoe::Test is loaded
7
+
8
+ class TestHoeTest < Minitest::Test
9
+ PATH = "test/minitest/test_minitest_test_task.rb"
10
+
11
+ mt_path = %w[lib test .].join File::PATH_SEPARATOR
12
+
13
+ MT_EXPECTED = %W[-I#{mt_path} -w
14
+ -e '%srequire "#{PATH}"'
15
+ --].join(" ") + " "
16
+
17
+ def test_make_test_cmd_for_minitest
18
+ skip "Using TESTOPTS... skipping" if ENV["TESTOPTS"]
19
+
20
+ require "minitest/test_task"
21
+
22
+ framework = %(require "minitest/autorun"; )
23
+
24
+ @tester = Minitest::TestTask.create :test do |t|
25
+ t.test_globs = [PATH]
26
+ end
27
+
28
+ assert_equal MT_EXPECTED % [framework].join("; "), @tester.make_test_cmd
29
+ end
30
+
31
+ def test_make_test_cmd_for_minitest_prelude
32
+ skip "Using TESTOPTS... skipping" if ENV["TESTOPTS"]
33
+
34
+ require "minitest/test_task"
35
+
36
+ prelude = %(require "other/file")
37
+ framework = %(require "minitest/autorun"; )
38
+
39
+ @tester = Minitest::TestTask.create :test do |t|
40
+ t.test_prelude = prelude
41
+ t.test_globs = [PATH]
42
+ end
43
+
44
+ assert_equal MT_EXPECTED % [prelude, framework].join("; "), @tester.make_test_cmd
45
+ end
46
+ end
data.tar.gz.sig CHANGED
@@ -1,2 +1 @@
1
- E޺�6
2
- �!M?V�h��o�� �L�����t.����WR���a���9����!V ݁�7\��
1
+ ot�y^f�/�չ=��M/DV���&d�����Ҙ����C����7W�f�����]��/E�I~0�j +�Ђ��H*>�J�8�;F[u�X������J})����]P��N���*4��[���9b����uF@> ����� f�����eH����;���p��^w�c�nR���l&*jhn��� ⌬��3=k˩E�A/�VQ����ǥ-�A)�Y)c�i�ϗTGi�|S(Q���Bw���R�ǵI n
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: minitest
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.14.3
4
+ version: 5.16.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Davis
@@ -10,9 +10,9 @@ bindir: bin
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- MIIDPjCCAiagAwIBAgIBBTANBgkqhkiG9w0BAQsFADBFMRMwEQYDVQQDDApyeWFu
13
+ MIIDPjCCAiagAwIBAgIBBjANBgkqhkiG9w0BAQsFADBFMRMwEQYDVQQDDApyeWFu
14
14
  ZC1ydWJ5MRkwFwYKCZImiZPyLGQBGRYJemVuc3BpZGVyMRMwEQYKCZImiZPyLGQB
15
- GRYDY29tMB4XDTIwMTIyMjIwMzgzMFoXDTIxMTIyMjIwMzgzMFowRTETMBEGA1UE
15
+ GRYDY29tMB4XDTIxMTIyMzIzMTkwNFoXDTIyMTIyMzIzMTkwNFowRTETMBEGA1UE
16
16
  AwwKcnlhbmQtcnVieTEZMBcGCgmSJomT8ixkARkWCXplbnNwaWRlcjETMBEGCgmS
17
17
  JomT8ixkARkWA2NvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALda
18
18
  b9DCgK+627gPJkB6XfjZ1itoOQvpqH1EXScSaba9/S2VF22VYQbXU1xQXL/WzCkx
@@ -22,14 +22,14 @@ cert_chain:
22
22
  qhtV7HJxNKuPj/JFH0D2cswvzznE/a5FOYO68g+YCuFi5L8wZuuM8zzdwjrWHqSV
23
23
  gBEfoTEGr7Zii72cx+sCAwEAAaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAw
24
24
  HQYDVR0OBBYEFEfFe9md/r/tj/Wmwpy+MI8d9k/hMA0GCSqGSIb3DQEBCwUAA4IB
25
- AQAE3XRm1YZcCVjAJy5yMZvTOFrS7B2SYErc+0QwmKYbHztTTDY2m5Bii+jhpuxh
26
- H+ETcU1z8TUKLpsBUP4kUpIRowkVN1p/jKapV8T3Rbwq+VuYFe+GMKsf8wGZSecG
27
- oMQ8DzzauZfbvhe2kDg7G9BBPU0wLQlY25rDcCy9bLnD7R0UK3ONqpwvsI5I7x5X
28
- ZIMXR0a9/DG+55mawwdGzCQobDKiSNLK89KK7OcNTALKU0DfgdTkktdgKchzKHqZ
29
- d/AHw/kcnU6iuMUoJEcGiJd4gVCTn1l3cDcIvxakGslCA88Jubw0Sqatan0TnC9g
30
- KToW560QIey7SPfHWduzFJnV
25
+ AQCKB5jfsuSnKb+t/Wrh3UpdkmX7TrEsjVmERC0pPqzQ5GQJgmEXDD7oMgaKXaAq
26
+ x2m+KSZDrqk7c8uho5OX6YMqg4KdxehfSLqqTZGoeV78qwf/jpPQZKTf+W9gUSJh
27
+ zsWpo4K50MP+QtdSbKXZwjAafpQ8hK0MnnZ/aeCsW9ov5vdXpYbf3dpg6ADXRGE7
28
+ lQY2y1tJ5/chqu6h7dQmnm2ABUqx9O+JcN9hbCYoA5i/EeubUEtFIh2w3SpO6YfB
29
+ JFmxn4h9YO/pVdB962BdBNNDia0kgIjI3ENnkLq0dKpYU3+F3KhEuTksLO0L6X/V
30
+ YsuyUzsMz6GQA4khyaMgKNSD
31
31
  -----END CERTIFICATE-----
32
- date: 2021-01-06 00:00:00.000000000 Z
32
+ date: 2022-06-15 00:00:00.000000000 Z
33
33
  dependencies:
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: rdoc
@@ -57,14 +57,14 @@ dependencies:
57
57
  requirements:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: '3.22'
60
+ version: '3.23'
61
61
  type: :development
62
62
  prerelease: false
63
63
  version_requirements: !ruby/object:Gem::Requirement
64
64
  requirements:
65
65
  - - "~>"
66
66
  - !ruby/object:Gem::Version
67
- version: '3.22'
67
+ version: '3.23'
68
68
  description: |-
69
69
  minitest provides a complete suite of testing facilities supporting
70
70
  TDD, BDD, mocking, and benchmarking.
@@ -147,6 +147,7 @@ files:
147
147
  - lib/minitest/pride_plugin.rb
148
148
  - lib/minitest/spec.rb
149
149
  - lib/minitest/test.rb
150
+ - lib/minitest/test_task.rb
150
151
  - lib/minitest/unit.rb
151
152
  - test/minitest/metametameta.rb
152
153
  - test/minitest/test_minitest_assertions.rb
@@ -155,6 +156,7 @@ files:
155
156
  - test/minitest/test_minitest_reporter.rb
156
157
  - test/minitest/test_minitest_spec.rb
157
158
  - test/minitest/test_minitest_test.rb
159
+ - test/minitest/test_minitest_test_task.rb
158
160
  homepage: https://github.com/seattlerb/minitest
159
161
  licenses:
160
162
  - MIT
@@ -171,7 +173,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
171
173
  requirements:
172
174
  - - ">="
173
175
  - !ruby/object:Gem::Version
174
- version: '2.2'
176
+ version: '2.6'
175
177
  - - "<"
176
178
  - !ruby/object:Gem::Version
177
179
  version: '4.0'
@@ -181,7 +183,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
181
183
  - !ruby/object:Gem::Version
182
184
  version: '0'
183
185
  requirements: []
184
- rubygems_version: 3.1.4
186
+ rubygems_version: 3.3.12
185
187
  signing_key:
186
188
  specification_version: 4
187
189
  summary: minitest provides a complete suite of testing facilities supporting TDD,
metadata.gz.sig CHANGED
Binary file