minitest 5.18.1 → 5.19.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 992b073995b1f8471d46b12e317817e1280f7c25967218dd62520658243f4b97
4
- data.tar.gz: 4265a53b9aa6d02307622cb2b57754137e675a032164303feef25445fe3e2ad7
3
+ metadata.gz: 90d1006243ab84a197a234948e0256bba3cbecbfb1d5d62d55b44ed5422d7eed
4
+ data.tar.gz: 2b526508669eab5c8578c2075fe8a8a83f1434a609c09667888020142e9326b7
5
5
  SHA512:
6
- metadata.gz: dd001c5041d4bb8c59fc348a5ab1c9df657cee56938817d2c9e1e9dcabf0e593e0e70dffe56be52b36bff86545919f3982486d632a3393e847bd4c89f392ed80
7
- data.tar.gz: 6a6045f24033c98a45951e00fec38cd252687cd6e41069c76e22c3cbe9da8f9f4c8a5ed0b663ba009807dbb1dde6cb5b659e712db5383388955f6efa6d7501c3
6
+ metadata.gz: 6614896f10af7da66d1327f6ba5e0565458df8567d5687dddf02ee91dc3ece9332d7ffb706c9a3b093deaaec13f8ddf8f017d5f90ba8d18975bb6ebcb8a313d0
7
+ data.tar.gz: eff4fefb8a32661c3e0fdf80a7b3c4cfc81f6e9dcd160a40aef3e49e6d82cf1c5b6bff92fc0faaf8dab6334049c11f54e18d95a745c82e8aecfb3533ed7b3194
checksums.yaml.gz.sig CHANGED
Binary file
data/History.rdoc CHANGED
@@ -1,3 +1,14 @@
1
+ === 5.19.0 / 2023-07-26
2
+
3
+ * 2 minor enhancements:
4
+
5
+ * Add metadata lazy accessor to Runnable / Result. (matteeyah)
6
+ * Only load minitest/unit (aka ancient MiniTest compatibility layer) if ENV["MT_COMPAT"]
7
+
8
+ * 1 bug fix:
9
+
10
+ * Minitest::TestTask enthusiastically added itself to default. (ParadoxV5)
11
+
1
12
  === 5.18.1 / 2023-06-16
2
13
 
3
14
  * 3 bug fixes:
data/lib/minitest/test.rb CHANGED
@@ -141,7 +141,7 @@ module Minitest
141
141
  # end
142
142
  # end
143
143
  #
144
- # class MiniTest::Test
144
+ # class Minitest::Test
145
145
  # include MyMinitestPlugin
146
146
  # end
147
147
 
@@ -245,4 +245,4 @@ module Minitest
245
245
  end # Test
246
246
  end
247
247
 
248
- require "minitest/unit" unless defined?(MiniTest) # compatibility layer only
248
+ require "minitest/unit" if ENV["MT_COMPAT"] # compatibility layer only
@@ -29,6 +29,10 @@ module Minitest # :nodoc:
29
29
  # end
30
30
  #
31
31
  # Customize the name and only run unit tests.
32
+ #
33
+ # NOTE: To hook this task up to the default, make it a dependency:
34
+ #
35
+ # task default: :unit
32
36
 
33
37
  class TestTask < Rake::TaskLib
34
38
  WINDOWS = RbConfig::CONFIG["host_os"] =~ /mswin|mingw/ # :nodoc:
@@ -157,8 +161,6 @@ module Minitest # :nodoc:
157
161
  end
158
162
 
159
163
  def define # :nodoc:
160
- default_tasks = []
161
-
162
164
  desc "Run the test suite. Use N, X, A, and TESTOPTS to add flags/args."
163
165
  task name do
164
166
  ruby make_test_cmd, verbose:verbose
@@ -243,11 +245,6 @@ module Minitest # :nodoc:
243
245
  "sort -n -k2 -t=",
244
246
  "tail -25"].join " | "
245
247
  end
246
-
247
- default_tasks << name
248
-
249
- desc "Run the default task(s)."
250
- task :default => default_tasks
251
248
  end
252
249
 
253
250
  ##
data/lib/minitest.rb CHANGED
@@ -9,7 +9,7 @@ require "etc"
9
9
  # :include: README.rdoc
10
10
 
11
11
  module Minitest
12
- VERSION = "5.18.1" # :nodoc:
12
+ VERSION = "5.19.0" # :nodoc:
13
13
 
14
14
  @@installed_at_exit ||= false
15
15
  @@after_run = []
@@ -446,6 +446,31 @@ module Minitest
446
446
  self.name = name
447
447
  self.failures = []
448
448
  self.assertions = 0
449
+ # lazy initializer for metadata
450
+ end
451
+
452
+ ##
453
+ # Metadata you attach to the test results that get sent to the reporter.
454
+ #
455
+ # Lazily initializes to a hash, to keep memory down.
456
+ #
457
+ # NOTE: this data *must* be plain (read: marshal-able) data!
458
+ # Hashes! Arrays! Strings!
459
+
460
+ def metadata
461
+ @metadata ||= {}
462
+ end
463
+
464
+ ##
465
+ # Sets metadata, mainly used for +Result.from+.
466
+
467
+ attr_writer :metadata
468
+
469
+ ##
470
+ # Returns true if metadata exists.
471
+
472
+ def metadata?
473
+ defined? @metadata
449
474
  end
450
475
 
451
476
  ##
@@ -566,6 +591,7 @@ module Minitest
566
591
  r.assertions = o.assertions
567
592
  r.failures = o.failures.dup
568
593
  r.time = o.time
594
+ r.metadata = o.metadata if o.metadata?
569
595
 
570
596
  r.source_location = o.method(o.name).source_location rescue ["unknown", -1]
571
597
 
@@ -65,6 +65,12 @@ class TestMinitestReporter < MetaMetaMetaTestCase
65
65
  @pt ||= Minitest::Result.from Minitest::Test.new(:woot)
66
66
  end
67
67
 
68
+ def passing_test_with_metadata
69
+ test = Minitest::Test.new(:woot)
70
+ test.metadata[:meta] = :data
71
+ @pt ||= Minitest::Result.from test
72
+ end
73
+
68
74
  def skip_test
69
75
  unless defined? @st then
70
76
  @st = Minitest::Test.new(:woot)
@@ -166,6 +172,29 @@ class TestMinitestReporter < MetaMetaMetaTestCase
166
172
  assert_equal 0, r.assertions
167
173
  end
168
174
 
175
+ def test_record_pass_with_metadata
176
+ reporter = self.r
177
+
178
+ def reporter.metadata
179
+ @metadata
180
+ end
181
+
182
+ def reporter.record result
183
+ super
184
+ @metadata = result.metadata if result.metadata?
185
+ end
186
+
187
+ r.record passing_test_with_metadata
188
+
189
+ exp = { :meta => :data }
190
+ assert_equal exp, reporter.metadata
191
+
192
+ assert_equal ".", io.string
193
+ assert_empty r.results
194
+ assert_equal 1, r.count
195
+ assert_equal 0, r.assertions
196
+ end
197
+
169
198
  def test_record_fail
170
199
  fail_test = self.fail_test
171
200
  r.record fail_test
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.18.1
4
+ version: 5.19.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Davis
@@ -29,7 +29,7 @@ cert_chain:
29
29
  ROfWo9Uyp8ba/j9eVG14KkYRaLydAY1MNQk2yd3R5CGfeOpD1kttxjoypoUJ2dOG
30
30
  nsNBRuQJ1UfiCG97a6DNm+Fr
31
31
  -----END CERTIFICATE-----
32
- date: 2023-06-16 00:00:00.000000000 Z
32
+ date: 2023-07-26 00:00:00.000000000 Z
33
33
  dependencies:
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: rdoc
metadata.gz.sig CHANGED
Binary file