minitest-speed 1.0.1 → 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 +5 -5
- checksums.yaml.gz.sig +0 -0
- data/History.rdoc +20 -1
- data/lib/minitest/speed.rb +79 -10
- data/test/test_minitest_speed.rb +97 -10
- data.tar.gz.sig +0 -0
- metadata +35 -33
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
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,3 +1,23 @@
|
|
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
|
+
|
9
|
+
=== 1.0.2 / 2025-01-06
|
10
|
+
|
11
|
+
NINE YEARS!
|
12
|
+
|
13
|
+
* 1 minor enhancement:
|
14
|
+
|
15
|
+
* Use Minitest.clock_time instead of Time.now for higher resolution when available.
|
16
|
+
|
17
|
+
* 1 bug fix:
|
18
|
+
|
19
|
+
* Fixed bug in max test time assertion.
|
20
|
+
|
1
21
|
=== 1.0.1 / 2016-10-09
|
2
22
|
|
3
23
|
* 1 bug fix:
|
@@ -9,4 +29,3 @@
|
|
9
29
|
* 1 major enhancement
|
10
30
|
|
11
31
|
* Birthday!
|
12
|
-
|
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 =
|
54
|
+
@setup_t0 = Minitest::Speed.clock_time.call
|
31
55
|
end
|
32
56
|
|
33
57
|
def after_setup # :nodoc:
|
34
|
-
delta =
|
58
|
+
delta = Minitest::Speed.clock_time.call - @setup_t0
|
35
59
|
|
36
|
-
@test_t0 =
|
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,16 +67,61 @@ module Minitest::Speed
|
|
43
67
|
def before_teardown # :nodoc:
|
44
68
|
super
|
45
69
|
|
46
|
-
@teardown_t0 =
|
70
|
+
@teardown_t0 = Minitest::Speed.clock_time.call
|
71
|
+
|
72
|
+
delta = Minitest::Speed.clock_time.call - @test_t0
|
47
73
|
|
48
|
-
delta
|
49
|
-
assert_operator delta, :<=, @@max_teardown_time
|
74
|
+
assert_operator delta, :<=, @@max_test_time, "max_test_time exceeded" unless @permit_slow_test
|
50
75
|
end
|
51
76
|
|
52
77
|
def after_teardown # :nodoc:
|
53
|
-
delta =
|
78
|
+
delta = Minitest::Speed.clock_time.call - @teardown_t0
|
79
|
+
|
80
|
+
assert_operator delta, :<=, @@max_teardown_time, "max_teardown_time exceeded" unless @permit_slow_teardown
|
54
81
|
|
55
|
-
assert_operator delta, :<=, @@max_teardown_time
|
56
82
|
super
|
57
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
|
58
127
|
end
|
data/test/test_minitest_speed.rb
CHANGED
@@ -6,9 +6,9 @@ module TestMinitest; end
|
|
6
6
|
class SpeedTest < Minitest::Test
|
7
7
|
include Minitest::Speed
|
8
8
|
|
9
|
-
@@max_setup_time = 0.
|
10
|
-
@@max_test_time = 0.
|
11
|
-
@@max_teardown_time = 0.
|
9
|
+
@@max_setup_time = 0.005
|
10
|
+
@@max_test_time = 0.015
|
11
|
+
@@max_teardown_time = 0.025
|
12
12
|
|
13
13
|
def self.go(&b)
|
14
14
|
Class.new(SpeedTest, &b).new(:test_something).run
|
@@ -16,14 +16,30 @@ class SpeedTest < Minitest::Test
|
|
16
16
|
end
|
17
17
|
|
18
18
|
class TestMinitest::TestSpeed < Minitest::Test
|
19
|
-
def
|
19
|
+
def assert_slow(&b)
|
20
20
|
refute_predicate SpeedTest.go(&b), :passed?
|
21
21
|
end
|
22
22
|
|
23
|
+
def assert_fast(&b)
|
24
|
+
assert_predicate SpeedTest.go(&b), :passed?
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_fast_setup
|
28
|
+
assert_fast do
|
29
|
+
def setup
|
30
|
+
sleep 0.001
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_something
|
34
|
+
assert true
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
23
39
|
def test_slow_setup
|
24
|
-
|
40
|
+
assert_slow do
|
25
41
|
def setup
|
26
|
-
sleep 0.
|
42
|
+
sleep 0.01
|
27
43
|
end
|
28
44
|
|
29
45
|
def test_something
|
@@ -32,23 +48,94 @@ class TestMinitest::TestSpeed < Minitest::Test
|
|
32
48
|
end
|
33
49
|
end
|
34
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
|
+
|
64
|
+
def test_fast_test
|
65
|
+
assert_fast do
|
66
|
+
def test_something
|
67
|
+
sleep 0.01
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
35
72
|
def test_slow_test
|
36
|
-
|
73
|
+
assert_slow do
|
37
74
|
def test_something
|
38
|
-
sleep 0.
|
75
|
+
sleep 0.02
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
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
|
+
|
89
|
+
def test_fast_teardown
|
90
|
+
assert_fast do
|
91
|
+
def teardown
|
92
|
+
sleep 0.01
|
93
|
+
end
|
94
|
+
|
95
|
+
def test_something
|
96
|
+
assert true
|
39
97
|
end
|
40
98
|
end
|
41
99
|
end
|
42
100
|
|
43
101
|
def test_slow_teardown
|
44
|
-
|
102
|
+
assert_slow do
|
103
|
+
def teardown
|
104
|
+
sleep 0.03
|
105
|
+
end
|
106
|
+
|
107
|
+
def test_something
|
108
|
+
assert true
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
def test_permit_slow_teardown
|
114
|
+
assert_fast do
|
45
115
|
def teardown
|
46
|
-
|
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)
|
47
132
|
end
|
48
133
|
|
49
134
|
def test_something
|
50
135
|
assert true
|
51
136
|
end
|
52
137
|
end
|
138
|
+
ensure
|
139
|
+
Minitest::Speed.clock_time = clock_time_was
|
53
140
|
end
|
54
141
|
end
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,18 +1,17 @@
|
|
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
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain:
|
11
10
|
- |
|
12
11
|
-----BEGIN CERTIFICATE-----
|
13
|
-
|
12
|
+
MIIDPjCCAiagAwIBAgIBCTANBgkqhkiG9w0BAQsFADBFMRMwEQYDVQQDDApyeWFu
|
14
13
|
ZC1ydWJ5MRkwFwYKCZImiZPyLGQBGRYJemVuc3BpZGVyMRMwEQYKCZImiZPyLGQB
|
15
|
-
|
14
|
+
GRYDY29tMB4XDTI1MDEwNjIzMjcwMVoXDTI2MDEwNjIzMjcwMVowRTETMBEGA1UE
|
16
15
|
AwwKcnlhbmQtcnVieTEZMBcGCgmSJomT8ixkARkWCXplbnNwaWRlcjETMBEGCgmS
|
17
16
|
JomT8ixkARkWA2NvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALda
|
18
17
|
b9DCgK+627gPJkB6XfjZ1itoOQvpqH1EXScSaba9/S2VF22VYQbXU1xQXL/WzCkx
|
@@ -20,66 +19,71 @@ cert_chain:
|
|
20
19
|
oOvjtt5P8+GSK9zLzxQP0gVLS/D0FmoE44XuDr3iQkVS2ujU5zZL84mMNqNB1znh
|
21
20
|
GiadM9GHRaDiaxuX0cIUBj19T01mVE2iymf9I6bEsiayK/n6QujtyCbTWsAS9Rqt
|
22
21
|
qhtV7HJxNKuPj/JFH0D2cswvzznE/a5FOYO68g+YCuFi5L8wZuuM8zzdwjrWHqSV
|
23
|
-
gBEfoTEGr7Zii72cx+
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
fO6tdKQc/5RfA8oQEkg8hrxA5PQSz4TOFJGLpFvIapEk6tMruQ0bHgkhr9auXg==
|
22
|
+
gBEfoTEGr7Zii72cx+sCAwEAAaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAw
|
23
|
+
HQYDVR0OBBYEFEfFe9md/r/tj/Wmwpy+MI8d9k/hMA0GCSqGSIb3DQEBCwUAA4IB
|
24
|
+
AQAC0WQJcPOWPFwkojhzweilRVjTJ19UiLhiBTw3C1wJO3LVdBkWDmnnhAmKuX4D
|
25
|
+
r7vjQvESlABGIPdutI1Yl7mrHQzTkfLfXvNN6MT0nLChPyIYauT6SZZxubwJrUfA
|
26
|
+
7R0c2CJTIboZ0XaGpLsXqHEF1c29H7TV1QvVuqKAN2mCjh4N82QVn+ZKtys28AwT
|
27
|
+
6GfQX2fqLoi4KSc7xIzHKaNzqxeOICmJofk9w5VZ2rRN6yes8jvFYwz9HR41wdj8
|
28
|
+
bwfinv7Yp5fA6AysuZLhCykyfDuZVRrUp0Vb68YCKsLjJly/Theak+euNTxvHsB+
|
29
|
+
al9oSgPPHICMEX65qvLywitx
|
32
30
|
-----END CERTIFICATE-----
|
33
|
-
date:
|
31
|
+
date: 2025-04-07 00:00:00.000000000 Z
|
34
32
|
dependencies:
|
35
33
|
- !ruby/object:Gem::Dependency
|
36
34
|
name: minitest
|
37
35
|
requirement: !ruby/object:Gem::Requirement
|
38
36
|
requirements:
|
39
|
-
- -
|
37
|
+
- - ">"
|
40
38
|
- !ruby/object:Gem::Version
|
41
39
|
version: '5'
|
42
|
-
- - <
|
40
|
+
- - "<"
|
43
41
|
- !ruby/object:Gem::Version
|
44
42
|
version: '7'
|
45
43
|
type: :runtime
|
46
44
|
prerelease: false
|
47
45
|
version_requirements: !ruby/object:Gem::Requirement
|
48
46
|
requirements:
|
49
|
-
- -
|
47
|
+
- - ">"
|
50
48
|
- !ruby/object:Gem::Version
|
51
49
|
version: '5'
|
52
|
-
- - <
|
50
|
+
- - "<"
|
53
51
|
- !ruby/object:Gem::Version
|
54
52
|
version: '7'
|
55
53
|
- !ruby/object:Gem::Dependency
|
56
54
|
name: rdoc
|
57
55
|
requirement: !ruby/object:Gem::Requirement
|
58
56
|
requirements:
|
59
|
-
- -
|
57
|
+
- - ">="
|
60
58
|
- !ruby/object:Gem::Version
|
61
59
|
version: '4.0'
|
60
|
+
- - "<"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '7'
|
62
63
|
type: :development
|
63
64
|
prerelease: false
|
64
65
|
version_requirements: !ruby/object:Gem::Requirement
|
65
66
|
requirements:
|
66
|
-
- -
|
67
|
+
- - ">="
|
67
68
|
- !ruby/object:Gem::Version
|
68
69
|
version: '4.0'
|
70
|
+
- - "<"
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: '7'
|
69
73
|
- !ruby/object:Gem::Dependency
|
70
74
|
name: hoe
|
71
75
|
requirement: !ruby/object:Gem::Requirement
|
72
76
|
requirements:
|
73
|
-
- - ~>
|
77
|
+
- - "~>"
|
74
78
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
79
|
+
version: '4.2'
|
76
80
|
type: :development
|
77
81
|
prerelease: false
|
78
82
|
version_requirements: !ruby/object:Gem::Requirement
|
79
83
|
requirements:
|
80
|
-
- - ~>
|
84
|
+
- - "~>"
|
81
85
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
86
|
+
version: '4.2'
|
83
87
|
description: |-
|
84
88
|
minitest-speed adds test hooks to verify the time it takes to run the
|
85
89
|
setup, body, and teardown phases of each test. If the time of any
|
@@ -94,7 +98,7 @@ extra_rdoc_files:
|
|
94
98
|
- Manifest.txt
|
95
99
|
- README.rdoc
|
96
100
|
files:
|
97
|
-
- .autotest
|
101
|
+
- ".autotest"
|
98
102
|
- History.rdoc
|
99
103
|
- Manifest.txt
|
100
104
|
- README.rdoc
|
@@ -104,27 +108,25 @@ files:
|
|
104
108
|
homepage: https://github.com/seattlerb/minitest-speed
|
105
109
|
licenses:
|
106
110
|
- MIT
|
107
|
-
metadata:
|
108
|
-
|
111
|
+
metadata:
|
112
|
+
homepage_uri: https://github.com/seattlerb/minitest-speed
|
109
113
|
rdoc_options:
|
110
|
-
- --main
|
114
|
+
- "--main"
|
111
115
|
- README.rdoc
|
112
116
|
require_paths:
|
113
117
|
- lib
|
114
118
|
required_ruby_version: !ruby/object:Gem::Requirement
|
115
119
|
requirements:
|
116
|
-
- -
|
120
|
+
- - ">="
|
117
121
|
- !ruby/object:Gem::Version
|
118
122
|
version: '0'
|
119
123
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
120
124
|
requirements:
|
121
|
-
- -
|
125
|
+
- - ">="
|
122
126
|
- !ruby/object:Gem::Version
|
123
127
|
version: '0'
|
124
128
|
requirements: []
|
125
|
-
|
126
|
-
rubygems_version: 2.4.5
|
127
|
-
signing_key:
|
129
|
+
rubygems_version: 3.6.3
|
128
130
|
specification_version: 4
|
129
131
|
summary: minitest-speed adds test hooks to verify the time it takes to run the setup,
|
130
132
|
body, and teardown phases of each test
|
metadata.gz.sig
CHANGED
Binary file
|