minitest-speed 1.0.2 → 1.1.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 +12 -0
- data/lib/minitest/speed.rb +77 -10
- data/test/test_minitest_speed.rb +51 -0
- data.tar.gz.sig +2 -1
- metadata +3 -3
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5a6b0f795c932b715c2243a9de667729d1d5bf6b2b1f04052f8ccf093a9063aa
|
4
|
+
data.tar.gz: e5d75d409294f742b3c24a8ca28aabf00160dd1260f2af0c904e29920583922b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 736554b62ac40be16ed7a7de8c1c490680491e4ff209c2cfe8d50af21b4e6a740e24a186a13dd3a87662663067219254d10340ace7b4e71fac10961943a66f82
|
7
|
+
data.tar.gz: 23531330c8d3843b11b1c4d112955a52581be7174297863464c38d85a0a0bc69f4be4eab2eed179fd728fcdd49c552e7b8d03d5f1469e71a7f37210c0bf4c2e0
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/History.rdoc
CHANGED
@@ -1,7 +1,19 @@
|
|
1
|
+
=== 1.1.0 / 2025-04-07
|
2
|
+
|
3
|
+
* 3 minor enhancements:
|
4
|
+
|
5
|
+
* Added a message to the assertions to clarify which one fired. (HeyNonster)
|
6
|
+
* Added permit_slow_* methods to allow for disabling the speed checks. (HeyNonster)
|
7
|
+
* Allow for custom clock_time to be set. (HeyNonster)
|
8
|
+
|
1
9
|
=== 1.0.2 / 2025-01-06
|
2
10
|
|
3
11
|
NINE YEARS!
|
4
12
|
|
13
|
+
* 1 minor enhancement:
|
14
|
+
|
15
|
+
* Use Minitest.clock_time instead of Time.now for higher resolution when available.
|
16
|
+
|
5
17
|
* 1 bug fix:
|
6
18
|
|
7
19
|
* Fixed bug in max test time assertion.
|
data/lib/minitest/speed.rb
CHANGED
@@ -5,9 +5,21 @@ module Minitest; end # :nodoc:
|
|
5
5
|
# and teardown phases of each test. If the time of any phase goes over
|
6
6
|
# the maximum time, it fails the test. Use class variables to set the
|
7
7
|
# maximum thresholds and crank it down over time.
|
8
|
+
#
|
9
|
+
# class SpeedTest < Minitest::Test
|
10
|
+
# include Minitest::Speed
|
11
|
+
#
|
12
|
+
# @@max_setup_time = 0.01
|
13
|
+
# @@max_test_time = 0.01
|
14
|
+
# @@max_teardown_time = 0.01
|
15
|
+
# end
|
16
|
+
#
|
17
|
+
# class MyTest < SpeedTest
|
18
|
+
# # ...
|
19
|
+
# end
|
8
20
|
|
9
21
|
module Minitest::Speed
|
10
|
-
VERSION = "1.0
|
22
|
+
VERSION = "1.1.0" # :nodoc:
|
11
23
|
|
12
24
|
##
|
13
25
|
# Maximum setup time to pass a speed test. Default to 1.0 second.
|
@@ -24,18 +36,30 @@ module Minitest::Speed
|
|
24
36
|
|
25
37
|
@@max_teardown_time = 1.0
|
26
38
|
|
39
|
+
mc = class << self; self; end # :nodoc:
|
40
|
+
|
41
|
+
##
|
42
|
+
# Default way of getting the current time.
|
43
|
+
#
|
44
|
+
# Minitest::Speed.clock_time = proc { Minitest.clock_time }
|
45
|
+
|
46
|
+
mc.attr_accessor :clock_time
|
47
|
+
|
48
|
+
self.clock_time = -> { Minitest.clock_time }
|
49
|
+
|
50
|
+
|
27
51
|
def before_setup # :nodoc:
|
28
52
|
super
|
29
53
|
|
30
|
-
@setup_t0 = Minitest.clock_time
|
54
|
+
@setup_t0 = Minitest::Speed.clock_time.call
|
31
55
|
end
|
32
56
|
|
33
57
|
def after_setup # :nodoc:
|
34
|
-
delta = Minitest.clock_time - @setup_t0
|
58
|
+
delta = Minitest::Speed.clock_time.call - @setup_t0
|
35
59
|
|
36
|
-
@test_t0 = Minitest.clock_time
|
60
|
+
@test_t0 = Minitest::Speed.clock_time.call
|
37
61
|
|
38
|
-
assert_operator delta, :<=, @@max_setup_time
|
62
|
+
assert_operator delta, :<=, @@max_setup_time, "max_setup_time exceeded" unless @permit_slow_setup
|
39
63
|
|
40
64
|
super
|
41
65
|
end
|
@@ -43,18 +67,61 @@ module Minitest::Speed
|
|
43
67
|
def before_teardown # :nodoc:
|
44
68
|
super
|
45
69
|
|
46
|
-
@teardown_t0 = Minitest.clock_time
|
70
|
+
@teardown_t0 = Minitest::Speed.clock_time.call
|
47
71
|
|
48
|
-
delta = Minitest.clock_time - @test_t0
|
72
|
+
delta = Minitest::Speed.clock_time.call - @test_t0
|
49
73
|
|
50
|
-
assert_operator delta, :<=, @@max_test_time
|
74
|
+
assert_operator delta, :<=, @@max_test_time, "max_test_time exceeded" unless @permit_slow_test
|
51
75
|
end
|
52
76
|
|
53
77
|
def after_teardown # :nodoc:
|
54
|
-
delta = Minitest.clock_time - @teardown_t0
|
78
|
+
delta = Minitest::Speed.clock_time.call - @teardown_t0
|
55
79
|
|
56
|
-
assert_operator delta, :<=, @@max_teardown_time
|
80
|
+
assert_operator delta, :<=, @@max_teardown_time, "max_teardown_time exceeded" unless @permit_slow_teardown
|
57
81
|
|
58
82
|
super
|
59
83
|
end
|
84
|
+
|
85
|
+
##
|
86
|
+
# Disable setup speed assertion for the current setup.
|
87
|
+
#
|
88
|
+
# def setup
|
89
|
+
# permit_slow_setup
|
90
|
+
#
|
91
|
+
# slow_setup_thing
|
92
|
+
#
|
93
|
+
# super
|
94
|
+
# end
|
95
|
+
|
96
|
+
def permit_slow_setup
|
97
|
+
@permit_slow_setup = true
|
98
|
+
end
|
99
|
+
|
100
|
+
##
|
101
|
+
# Disable test speed assertion for the current test.
|
102
|
+
#
|
103
|
+
# def test_slow_thing
|
104
|
+
# permit_slow_test
|
105
|
+
#
|
106
|
+
# slow_thing
|
107
|
+
# end
|
108
|
+
|
109
|
+
def permit_slow_test
|
110
|
+
@permit_slow_test = true
|
111
|
+
end
|
112
|
+
|
113
|
+
##
|
114
|
+
# Disable teardown speed assertion for the current teardown.
|
115
|
+
#
|
116
|
+
# def teardown
|
117
|
+
# permit_slow_teardown
|
118
|
+
#
|
119
|
+
# slow_teardown_thing
|
120
|
+
#
|
121
|
+
# super
|
122
|
+
# end
|
123
|
+
|
124
|
+
def permit_slow_teardown
|
125
|
+
@permit_slow_teardown = true
|
126
|
+
end
|
60
127
|
end
|
data/test/test_minitest_speed.rb
CHANGED
@@ -48,6 +48,19 @@ class TestMinitest::TestSpeed < Minitest::Test
|
|
48
48
|
end
|
49
49
|
end
|
50
50
|
|
51
|
+
def test_permit_slow_setup
|
52
|
+
assert_fast do
|
53
|
+
def setup
|
54
|
+
permit_slow_setup
|
55
|
+
sleep 0.01
|
56
|
+
end
|
57
|
+
|
58
|
+
def test_something
|
59
|
+
assert true
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
51
64
|
def test_fast_test
|
52
65
|
assert_fast do
|
53
66
|
def test_something
|
@@ -64,6 +77,15 @@ class TestMinitest::TestSpeed < Minitest::Test
|
|
64
77
|
end
|
65
78
|
end
|
66
79
|
|
80
|
+
def test_permit_slow_test
|
81
|
+
assert_fast do
|
82
|
+
def test_something
|
83
|
+
permit_slow_test
|
84
|
+
sleep 0.02
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
67
89
|
def test_fast_teardown
|
68
90
|
assert_fast do
|
69
91
|
def teardown
|
@@ -87,4 +109,33 @@ class TestMinitest::TestSpeed < Minitest::Test
|
|
87
109
|
end
|
88
110
|
end
|
89
111
|
end
|
112
|
+
|
113
|
+
def test_permit_slow_teardown
|
114
|
+
assert_fast do
|
115
|
+
def teardown
|
116
|
+
permit_slow_teardown
|
117
|
+
sleep 0.03
|
118
|
+
end
|
119
|
+
|
120
|
+
def test_something
|
121
|
+
assert true
|
122
|
+
end
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
def test_clock_time
|
127
|
+
clock_time_was = Minitest::Speed.clock_time
|
128
|
+
assert_fast do
|
129
|
+
Minitest::Speed.clock_time = proc { 0 }
|
130
|
+
def setup
|
131
|
+
sleep(0.03)
|
132
|
+
end
|
133
|
+
|
134
|
+
def test_something
|
135
|
+
assert true
|
136
|
+
end
|
137
|
+
end
|
138
|
+
ensure
|
139
|
+
Minitest::Speed.clock_time = clock_time_was
|
140
|
+
end
|
90
141
|
end
|
data.tar.gz.sig
CHANGED
@@ -1 +1,2 @@
|
|
1
|
-
|
1
|
+
�m�*�NW�y�����`�{R��<�@�Y��:�-v<?>0��&y`���w%�D�{�"�]p��.Z�ǟ��%���E�
|
2
|
+
�8���0K�o�;%�韣�CU�>��pꖧ4�9,���P���='� �x�Q,�0)�83a*�]�I\�1�AZ����q��
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: minitest-speed
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Davis
|
@@ -28,7 +28,7 @@ cert_chain:
|
|
28
28
|
bwfinv7Yp5fA6AysuZLhCykyfDuZVRrUp0Vb68YCKsLjJly/Theak+euNTxvHsB+
|
29
29
|
al9oSgPPHICMEX65qvLywitx
|
30
30
|
-----END CERTIFICATE-----
|
31
|
-
date: 2025-
|
31
|
+
date: 2025-04-07 00:00:00.000000000 Z
|
32
32
|
dependencies:
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: minitest
|
@@ -126,7 +126,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
126
126
|
- !ruby/object:Gem::Version
|
127
127
|
version: '0'
|
128
128
|
requirements: []
|
129
|
-
rubygems_version: 3.6.
|
129
|
+
rubygems_version: 3.6.3
|
130
130
|
specification_version: 4
|
131
131
|
summary: minitest-speed adds test hooks to verify the time it takes to run the setup,
|
132
132
|
body, and teardown phases of each test
|
metadata.gz.sig
CHANGED
Binary file
|