minitest 5.14.0 → 5.17.0
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 +117 -4
- data/Manifest.txt +2 -0
- data/README.rdoc +78 -11
- data/Rakefile +4 -2
- data/lib/hoe/minitest.rb +0 -4
- data/lib/minitest/assertions.rb +8 -7
- data/lib/minitest/benchmark.rb +5 -5
- data/lib/minitest/expectations.rb +29 -29
- data/lib/minitest/mock.rb +119 -32
- data/lib/minitest/pride_plugin.rb +1 -1
- data/lib/minitest/spec.rb +9 -2
- data/lib/minitest/test.rb +42 -6
- data/lib/minitest/test_task.rb +305 -0
- data/lib/minitest/unit.rb +5 -8
- data/lib/minitest.rb +51 -26
- data/test/minitest/metametameta.rb +20 -1
- data/test/minitest/test_minitest_assertions.rb +49 -25
- data/test/minitest/test_minitest_benchmark.rb +2 -2
- data/test/minitest/test_minitest_mock.rb +286 -12
- data/test/minitest/test_minitest_reporter.rb +30 -17
- data/test/minitest/test_minitest_spec.rb +114 -50
- data/test/minitest/test_minitest_test.rb +225 -33
- data/test/minitest/test_minitest_test_task.rb +46 -0
- data.tar.gz.sig +0 -0
- metadata +23 -18
- 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,13 +73,19 @@ 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
|
-
|
79
|
-
|
80
|
-
|
82
|
+
def test_filter_backtrace__empty
|
83
|
+
with_empty_backtrace_filter do
|
84
|
+
bt = %w[first second third]
|
85
|
+
fu = Minitest.filter_backtrace bt.dup
|
86
|
+
assert_equal bt, fu
|
87
|
+
end
|
88
|
+
end
|
81
89
|
|
82
90
|
def test_infectious_binary_encoding
|
83
91
|
@tu = Class.new FakeNamedTest do
|
@@ -91,24 +99,26 @@ class TestMinitestUnit < MetaMetaMetaTestCase
|
|
91
99
|
end
|
92
100
|
|
93
101
|
expected = clean <<-EOM
|
94
|
-
|
102
|
+
FE
|
95
103
|
|
96
104
|
Finished in 0.00
|
97
105
|
|
98
|
-
1)
|
99
|
-
FakeNamedTestXX#test_this_is_non_ascii_failure_message:
|
100
|
-
RuntimeError: ЁЁЁ
|
101
|
-
FILE:LINE:in `test_this_is_non_ascii_failure_message'
|
102
|
-
|
103
|
-
2) Failure:
|
106
|
+
1) Failure:
|
104
107
|
FakeNamedTestXX#test_this_is_not_ascii_assertion [FILE:LINE]:
|
105
108
|
Expected: \"ЁЁЁ\"
|
106
109
|
Actual: \"ёёё\"
|
107
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
|
+
|
108
116
|
2 runs, 1 assertions, 1 failures, 1 errors, 0 skips
|
109
117
|
EOM
|
110
118
|
|
111
|
-
|
119
|
+
Minitest::Test.io_lock.synchronize do # try not to trounce in parallel
|
120
|
+
assert_report expected
|
121
|
+
end
|
112
122
|
end
|
113
123
|
|
114
124
|
def test_passed_eh_teardown_good
|
@@ -154,11 +164,7 @@ class TestMinitestUnit < MetaMetaMetaTestCase
|
|
154
164
|
end
|
155
165
|
|
156
166
|
def util_expand_bt bt
|
157
|
-
|
158
|
-
bt.map { |f| (f =~ /^\./) ? File.expand_path(f) : f }
|
159
|
-
else
|
160
|
-
bt
|
161
|
-
end
|
167
|
+
bt.map { |f| (f =~ /^\./) ? File.expand_path(f) : f }
|
162
168
|
end
|
163
169
|
end
|
164
170
|
|
@@ -250,7 +256,7 @@ class TestMinitestRunner < MetaMetaMetaTestCase
|
|
250
256
|
end
|
251
257
|
|
252
258
|
expected = clean <<-EOM
|
253
|
-
E
|
259
|
+
.E
|
254
260
|
|
255
261
|
Finished in 0.00
|
256
262
|
|
@@ -297,7 +303,7 @@ class TestMinitestRunner < MetaMetaMetaTestCase
|
|
297
303
|
setup_basic_tu
|
298
304
|
|
299
305
|
expected = clean <<-EOM
|
300
|
-
F
|
306
|
+
.F
|
301
307
|
|
302
308
|
Finished in 0.00
|
303
309
|
|
@@ -324,6 +330,10 @@ class TestMinitestRunner < MetaMetaMetaTestCase
|
|
324
330
|
end
|
325
331
|
end
|
326
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
|
+
|
327
337
|
def test_run_failing_filtered
|
328
338
|
setup_basic_tu
|
329
339
|
|
@@ -481,7 +491,7 @@ class TestMinitestRunner < MetaMetaMetaTestCase
|
|
481
491
|
end
|
482
492
|
|
483
493
|
expected = clean <<-EOM
|
484
|
-
S
|
494
|
+
.S
|
485
495
|
|
486
496
|
Finished in 0.00
|
487
497
|
|
@@ -508,8 +518,8 @@ class TestMinitestRunner < MetaMetaMetaTestCase
|
|
508
518
|
end
|
509
519
|
|
510
520
|
expected = clean <<-EOM
|
511
|
-
FakeNamedTestXX#test_skip = 0.00 s = S
|
512
521
|
FakeNamedTestXX#test_something = 0.00 s = .
|
522
|
+
FakeNamedTestXX#test_skip = 0.00 s = S
|
513
523
|
|
514
524
|
Finished in 0.00
|
515
525
|
|
@@ -523,6 +533,33 @@ class TestMinitestRunner < MetaMetaMetaTestCase
|
|
523
533
|
assert_report expected, %w[--seed 42 --verbose]
|
524
534
|
end
|
525
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
|
+
|
526
563
|
def test_run_with_other_runner
|
527
564
|
@tu =
|
528
565
|
Class.new FakeNamedTest do
|
@@ -623,6 +660,8 @@ class TestMinitestRunner < MetaMetaMetaTestCase
|
|
623
660
|
2 runs, 2 assertions, 0 failures, 0 errors, 0 skips
|
624
661
|
EOM
|
625
662
|
|
663
|
+
skip if Minitest.parallel_executor.size < 2 # locks up test runner if 1 CPU
|
664
|
+
|
626
665
|
assert_report(expected) do |reporter|
|
627
666
|
reporter.extend(Module.new {
|
628
667
|
define_method("record") do |result|
|
@@ -747,6 +786,13 @@ class TestMinitestUnitOrder < MetaMetaMetaTestCase
|
|
747
786
|
end
|
748
787
|
end
|
749
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
|
+
|
750
796
|
class TestMinitestRunnable < Minitest::Test
|
751
797
|
def setup_marshal klass
|
752
798
|
tc = klass.new "whatever"
|
@@ -799,6 +845,146 @@ class TestMinitestRunnable < Minitest::Test
|
|
799
845
|
assert_equal @tc.failures, over_the_wire.failures
|
800
846
|
assert_equal @tc.klass, over_the_wire.klass
|
801
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
|
802
988
|
end
|
803
989
|
|
804
990
|
class TestMinitestTest < TestMinitestRunnable
|
@@ -844,19 +1030,25 @@ class TestMinitestUnitTestCase < Minitest::Test
|
|
844
1030
|
$VERBOSE = orig_verbose
|
845
1031
|
end
|
846
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
|
847
1043
|
def test_runnable_methods_random
|
848
1044
|
@assertion_count = 0
|
849
1045
|
|
850
|
-
|
851
|
-
|
852
|
-
|
853
|
-
def test_test2; assert "does not matter" end
|
854
|
-
def test_test3; assert "does not matter" end
|
855
|
-
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
|
856
1049
|
|
857
|
-
|
858
|
-
|
859
|
-
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
|
860
1052
|
end
|
861
1053
|
|
862
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,18 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: minitest
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.
|
4
|
+
version: 5.17.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Davis
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain:
|
11
11
|
- |
|
12
12
|
-----BEGIN CERTIFICATE-----
|
13
|
-
|
13
|
+
MIIDPjCCAiagAwIBAgIBBzANBgkqhkiG9w0BAQsFADBFMRMwEQYDVQQDDApyeWFu
|
14
14
|
ZC1ydWJ5MRkwFwYKCZImiZPyLGQBGRYJemVuc3BpZGVyMRMwEQYKCZImiZPyLGQB
|
15
|
-
|
15
|
+
GRYDY29tMB4XDTIzMDEwMTA3NTExN1oXDTI0MDEwMTA3NTExN1owRTETMBEGA1UE
|
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
|
+
AQAkg3y+PBnBAPWdxxITm5sPHqdWQgSyCpRA20o4LTuWr8BWhSXBkfQNa7cY6fOn
|
26
|
+
xyM34VPzBFbExv6XOGDfOMFBVaYTHuN9peC/5/umL7kLl+nflXzL2QA7K6LYj5Bg
|
27
|
+
sM574Onr0dZDM6Vn69bzQ7rBIFDfK/OhlPzqKZad4nsdcsVH8ODCiT+ATMIZyz5K
|
28
|
+
WCnNtqlyiWXI8tdTpahDgcUwfcN/oN7v4K8iU5IbLJX6HQ5DKgmKjfb6XyMth16k
|
29
|
+
ROfWo9Uyp8ba/j9eVG14KkYRaLydAY1MNQk2yd3R5CGfeOpD1kttxjoypoUJ2dOG
|
30
|
+
nsNBRuQJ1UfiCG97a6DNm+Fr
|
31
31
|
-----END CERTIFICATE-----
|
32
|
-
date:
|
32
|
+
date: 2023-01-01 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: '
|
60
|
+
version: '4.0'
|
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: '
|
67
|
+
version: '4.0'
|
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,13 +156,14 @@ 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
|
161
163
|
metadata:
|
162
164
|
homepage_uri: https://github.com/seattlerb/minitest
|
163
165
|
bug_tracker_uri: https://github.com/seattlerb/minitest/issues
|
164
|
-
post_install_message:
|
166
|
+
post_install_message:
|
165
167
|
rdoc_options:
|
166
168
|
- "--main"
|
167
169
|
- README.rdoc
|
@@ -169,17 +171,20 @@ require_paths:
|
|
169
171
|
- lib
|
170
172
|
required_ruby_version: !ruby/object:Gem::Requirement
|
171
173
|
requirements:
|
172
|
-
- - "
|
174
|
+
- - ">="
|
175
|
+
- !ruby/object:Gem::Version
|
176
|
+
version: '2.6'
|
177
|
+
- - "<"
|
173
178
|
- !ruby/object:Gem::Version
|
174
|
-
version: '
|
179
|
+
version: '4.0'
|
175
180
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
176
181
|
requirements:
|
177
182
|
- - ">="
|
178
183
|
- !ruby/object:Gem::Version
|
179
184
|
version: '0'
|
180
185
|
requirements: []
|
181
|
-
rubygems_version: 3.
|
182
|
-
signing_key:
|
186
|
+
rubygems_version: 3.3.12
|
187
|
+
signing_key:
|
183
188
|
specification_version: 4
|
184
189
|
summary: minitest provides a complete suite of testing facilities supporting TDD,
|
185
190
|
BDD, mocking, and benchmarking
|
metadata.gz.sig
CHANGED
Binary file
|