minitest 5.14.4 → 5.16.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/History.rdoc +73 -1
- data/Manifest.txt +2 -0
- data/README.rdoc +47 -13
- 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 +112 -33
- data/lib/minitest/pride_plugin.rb +1 -1
- data/lib/minitest/spec.rb +3 -2
- data/lib/minitest/test.rb +35 -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 +265 -10
- 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 +218 -30
- data/test/minitest/test_minitest_test_task.rb +46 -0
- data.tar.gz.sig +0 -0
- 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|
|
@@ -751,6 +786,13 @@ class TestMinitestUnitOrder < MetaMetaMetaTestCase
|
|
751
786
|
end
|
752
787
|
end
|
753
788
|
|
789
|
+
class BetterError < RuntimeError # like better_error w/o infecting RuntimeError
|
790
|
+
def set_backtrace bt
|
791
|
+
super
|
792
|
+
@bad_ivar = binding
|
793
|
+
end
|
794
|
+
end
|
795
|
+
|
754
796
|
class TestMinitestRunnable < Minitest::Test
|
755
797
|
def setup_marshal klass
|
756
798
|
tc = klass.new "whatever"
|
@@ -803,6 +845,146 @@ class TestMinitestRunnable < Minitest::Test
|
|
803
845
|
assert_equal @tc.failures, over_the_wire.failures
|
804
846
|
assert_equal @tc.klass, over_the_wire.klass
|
805
847
|
end
|
848
|
+
|
849
|
+
def test_spec_marshal_with_exception
|
850
|
+
klass = describe("whatever") {
|
851
|
+
it("raises, badly") {
|
852
|
+
raise Class.new(StandardError), "this is bad!"
|
853
|
+
}
|
854
|
+
}
|
855
|
+
|
856
|
+
rm = klass.runnable_methods.first
|
857
|
+
|
858
|
+
# Run the test
|
859
|
+
@tc = klass.new(rm).run
|
860
|
+
|
861
|
+
assert_kind_of Minitest::Result, @tc
|
862
|
+
assert_instance_of Minitest::UnexpectedError, @tc.failure
|
863
|
+
|
864
|
+
msg = @tc.failure.error.message
|
865
|
+
assert_includes msg, "Neutered Exception #<Class:"
|
866
|
+
assert_includes msg, "this is bad!"
|
867
|
+
|
868
|
+
# Pass it over the wire
|
869
|
+
over_the_wire = Marshal.load Marshal.dump @tc
|
870
|
+
|
871
|
+
assert_equal @tc.time, over_the_wire.time
|
872
|
+
assert_equal @tc.name, over_the_wire.name
|
873
|
+
assert_equal @tc.assertions, over_the_wire.assertions
|
874
|
+
assert_equal @tc.failures, over_the_wire.failures
|
875
|
+
assert_equal @tc.klass, over_the_wire.klass
|
876
|
+
end
|
877
|
+
|
878
|
+
def test_spec_marshal_with_exception_nameerror
|
879
|
+
klass = describe("whatever") {
|
880
|
+
it("raises nameerror") {
|
881
|
+
NOPE::does_not_exist
|
882
|
+
}
|
883
|
+
}
|
884
|
+
|
885
|
+
rm = klass.runnable_methods.first
|
886
|
+
|
887
|
+
# Run the test
|
888
|
+
@tc = klass.new(rm).run
|
889
|
+
|
890
|
+
assert_kind_of Minitest::Result, @tc
|
891
|
+
assert_instance_of Minitest::UnexpectedError, @tc.failure
|
892
|
+
|
893
|
+
msg = @tc.failure.error.message
|
894
|
+
assert_includes msg, "uninitialized constant TestMinitestRunnable::NOPE"
|
895
|
+
|
896
|
+
# Pass it over the wire
|
897
|
+
over_the_wire = Marshal.load Marshal.dump @tc
|
898
|
+
|
899
|
+
assert_equal @tc.time, over_the_wire.time
|
900
|
+
assert_equal @tc.name, over_the_wire.name
|
901
|
+
assert_equal @tc.assertions, over_the_wire.assertions
|
902
|
+
assert_equal @tc.failures, over_the_wire.failures
|
903
|
+
assert_equal @tc.klass, over_the_wire.klass
|
904
|
+
end
|
905
|
+
|
906
|
+
def with_runtime_error klass
|
907
|
+
old_runtime = RuntimeError
|
908
|
+
Object.send :remove_const, :RuntimeError
|
909
|
+
Object.const_set :RuntimeError, klass
|
910
|
+
yield
|
911
|
+
ensure
|
912
|
+
Object.send :remove_const, :RuntimeError
|
913
|
+
Object.const_set :RuntimeError, old_runtime
|
914
|
+
end
|
915
|
+
|
916
|
+
def test_spec_marshal_with_exception__better_error_typeerror
|
917
|
+
klass = describe("whatever") {
|
918
|
+
it("raises with binding") {
|
919
|
+
raise BetterError, "boom"
|
920
|
+
}
|
921
|
+
}
|
922
|
+
|
923
|
+
rm = klass.runnable_methods.first
|
924
|
+
|
925
|
+
# Run the test
|
926
|
+
@tc = with_runtime_error BetterError do
|
927
|
+
klass.new(rm).run
|
928
|
+
end
|
929
|
+
|
930
|
+
assert_kind_of Minitest::Result, @tc
|
931
|
+
assert_instance_of Minitest::UnexpectedError, @tc.failure
|
932
|
+
|
933
|
+
msg = @tc.failure.error.message
|
934
|
+
assert_equal "Neutered Exception BetterError: boom", msg
|
935
|
+
|
936
|
+
# Pass it over the wire
|
937
|
+
over_the_wire = Marshal.load Marshal.dump @tc
|
938
|
+
|
939
|
+
assert_equal @tc.time, over_the_wire.time
|
940
|
+
assert_equal @tc.name, over_the_wire.name
|
941
|
+
assert_equal @tc.assertions, over_the_wire.assertions
|
942
|
+
assert_equal @tc.failures, over_the_wire.failures
|
943
|
+
assert_equal @tc.klass, over_the_wire.klass
|
944
|
+
end
|
945
|
+
|
946
|
+
def test_spec_marshal_with_exception__worse_error_typeerror
|
947
|
+
worse_error_klass = Class.new(StandardError) do
|
948
|
+
# problem #1: anonymous subclass can'tmarshal, fails sanitize_exception
|
949
|
+
def initialize(record = nil)
|
950
|
+
|
951
|
+
super(record.first)
|
952
|
+
end
|
953
|
+
end
|
954
|
+
|
955
|
+
klass = describe("whatever") {
|
956
|
+
it("raises with NoMethodError") {
|
957
|
+
# problem #2: instantiated with a NON-string argument
|
958
|
+
#
|
959
|
+
# problem #3: arg responds to #first, but it becomes message
|
960
|
+
# which gets passed back in via new_exception
|
961
|
+
# that passes a string to worse_error_klass#initialize
|
962
|
+
# which calls first on it, which raises NoMethodError
|
963
|
+
raise worse_error_klass.new(["boom"])
|
964
|
+
}
|
965
|
+
}
|
966
|
+
|
967
|
+
rm = klass.runnable_methods.first
|
968
|
+
|
969
|
+
# Run the test
|
970
|
+
@tc = klass.new(rm).run
|
971
|
+
|
972
|
+
assert_kind_of Minitest::Result, @tc
|
973
|
+
assert_instance_of Minitest::UnexpectedError, @tc.failure
|
974
|
+
|
975
|
+
msg = @tc.failure.error.message.gsub(/0x[A-Fa-f0-9]+/, "0xXXX")
|
976
|
+
|
977
|
+
assert_equal "Neutered Exception #<Class:0xXXX>: boom", msg
|
978
|
+
|
979
|
+
# Pass it over the wire
|
980
|
+
over_the_wire = Marshal.load Marshal.dump @tc
|
981
|
+
|
982
|
+
assert_equal @tc.time, over_the_wire.time
|
983
|
+
assert_equal @tc.name, over_the_wire.name
|
984
|
+
assert_equal @tc.assertions, over_the_wire.assertions
|
985
|
+
assert_equal @tc.failures, over_the_wire.failures
|
986
|
+
assert_equal @tc.klass, over_the_wire.klass
|
987
|
+
end
|
806
988
|
end
|
807
989
|
|
808
990
|
class TestMinitestTest < TestMinitestRunnable
|
@@ -848,19 +1030,25 @@ class TestMinitestUnitTestCase < Minitest::Test
|
|
848
1030
|
$VERBOSE = orig_verbose
|
849
1031
|
end
|
850
1032
|
|
1033
|
+
def sample_test_case(rand)
|
1034
|
+
srand rand
|
1035
|
+
Class.new FakeNamedTest do
|
1036
|
+
100.times do |i|
|
1037
|
+
define_method("test_#{i}") { assert true }
|
1038
|
+
end
|
1039
|
+
end.runnable_methods
|
1040
|
+
end
|
1041
|
+
|
1042
|
+
# srand varies with OS
|
851
1043
|
def test_runnable_methods_random
|
852
1044
|
@assertion_count = 0
|
853
1045
|
|
854
|
-
|
855
|
-
|
856
|
-
|
857
|
-
def test_test2; assert "does not matter" end
|
858
|
-
def test_test3; assert "does not matter" end
|
859
|
-
end
|
1046
|
+
random_tests_1 = sample_test_case 42
|
1047
|
+
random_tests_2 = sample_test_case 42
|
1048
|
+
random_tests_3 = sample_test_case 1_000
|
860
1049
|
|
861
|
-
|
862
|
-
|
863
|
-
assert_equal expected, sample_test_case.runnable_methods
|
1050
|
+
assert_equal random_tests_1, random_tests_2
|
1051
|
+
assert_equal random_tests_1, random_tests_3
|
864
1052
|
end
|
865
1053
|
|
866
1054
|
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
Binary file
|
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.3
|
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-08-17 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.24'
|
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.24'
|
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
|