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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/History.rdoc +55 -1
- data/Manifest.txt +2 -0
- data/README.rdoc +79 -10
- data/Rakefile +1 -1
- data/lib/hoe/minitest.rb +0 -4
- data/lib/minitest/assertions.rb +7 -6
- data/lib/minitest/benchmark.rb +5 -5
- data/lib/minitest/mock.rb +79 -28
- data/lib/minitest/pride_plugin.rb +1 -1
- data/lib/minitest/spec.rb +3 -2
- data/lib/minitest/test.rb +28 -3
- data/lib/minitest/test_task.rb +305 -0
- data/lib/minitest/unit.rb +5 -8
- data/lib/minitest.rb +44 -14
- data/test/minitest/metametameta.rb +1 -1
- data/test/minitest/test_minitest_assertions.rb +32 -16
- data/test/minitest/test_minitest_benchmark.rb +2 -2
- data/test/minitest/test_minitest_mock.rb +179 -9
- data/test/minitest/test_minitest_reporter.rb +30 -17
- data/test/minitest/test_minitest_spec.rb +25 -16
- data/test/minitest/test_minitest_test.rb +128 -30
- data/test/minitest/test_minitest_test_task.rb +46 -0
- data.tar.gz.sig +1 -2
- metadata +16 -14
- metadata.gz.sig +0 -0
@@ -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
|
-
|
51
|
+
Minitest::Test.io_lock.synchronize do # try not to trounce in parallel
|
52
|
+
fu = Minitest.filter_backtrace(bt)
|
52
53
|
|
53
|
-
|
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
|
-
|
75
|
-
|
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
|
-
|
102
|
+
FE
|
99
103
|
|
100
104
|
Finished in 0.00
|
101
105
|
|
102
|
-
1)
|
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
|
-
|
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
|
-
|
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
|
-
|
855
|
-
|
856
|
-
|
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
|
-
|
862
|
-
|
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
|
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.
|
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
|
-
|
13
|
+
MIIDPjCCAiagAwIBAgIBBjANBgkqhkiG9w0BAQsFADBFMRMwEQYDVQQDDApyeWFu
|
14
14
|
ZC1ydWJ5MRkwFwYKCZImiZPyLGQBGRYJemVuc3BpZGVyMRMwEQYKCZImiZPyLGQB
|
15
|
-
|
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
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
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:
|
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.
|
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.
|
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.
|
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.
|
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
|