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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3428b035fe42f03dfdfa5ec731cbabeb3586b3beaa87c208103099fd80df7c03
4
- data.tar.gz: 163aa55c499a09d57e200ea967bb7076a7006b77436c7e144eaf67f8030c18ac
3
+ metadata.gz: 5a6b0f795c932b715c2243a9de667729d1d5bf6b2b1f04052f8ccf093a9063aa
4
+ data.tar.gz: e5d75d409294f742b3c24a8ca28aabf00160dd1260f2af0c904e29920583922b
5
5
  SHA512:
6
- metadata.gz: 6ab919c364c0feb38fafe73914a7fa32197aba01f2ca1d8a641afa2520fa0d13845d9e7af03c461754779b3dd8046f3b2bf8e3b97788042acc629541aa982f47
7
- data.tar.gz: 53c1500e724d35152999bdae591d3c044f4d6e94675dacedc8c04c55a41910bd0180dd0355faaf8517a6f2f737f6e1c12658479f952c3753d478b9a0eab1fadc
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.
@@ -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.2" # :nodoc:
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
@@ -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
- jM(Jhci
1
+ m�*�NWy�����`�{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.2
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-01-06 00:00:00.000000000 Z
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.2
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