test-unit 3.3.5 → 3.3.6

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: 9a584be907dd430934f5a1c24e8dc859eda50290115cdf947d8daf2ea81d2178
4
- data.tar.gz: 3d50831298ead40ec2405252e04363c13841f85402de11d7dba8f4528484b392
3
+ metadata.gz: b7aaedb309f50feea0367554eeef8b79f0daf6edb5c75c4b66df9e990c35d371
4
+ data.tar.gz: 17bd1f32e290087d6b57cf5337dbd8cc8259896671ef1cc6c23b15579e52698b
5
5
  SHA512:
6
- metadata.gz: 9b84485dbac9ba0533be8586f8c13957b3509d82ea29274c4716c93c0e9ac0481150a4fb6590be60466d17feeb480de1fb0a79eea3f5f8462a6a3ac85e2dbace
7
- data.tar.gz: 0b516c62f5ce1f23afed0eab2e7bd35416535b71c77ea0819db08b404fada1c0400bd20d497e573acae63c3d99539c96ab2df16f917315e37fadf561f4731c22
6
+ metadata.gz: d86d52e5ed5bc4930f6b26f76d0294cb2e50261f16495649e75eb79ab2631cd23c2bfd6602ede230384f3971e9f780f87a8324ca15a0b3a09866a1c449641e55
7
+ data.tar.gz: 26975998cc3e8c4c6e5d372b3d3e51316e2709508fdb5ebd87083dcf658941f4b038bcc4f6e1f714ba891a14c1ccbca5ec5e197065a45163dcfd5861cd5b6c15
@@ -1,5 +1,25 @@
1
1
  # News
2
2
 
3
+ ## 3.3.6 - 2020-06-10 {#version-3-3-6}
4
+
5
+ ### Improvements
6
+
7
+ * `name`, `--ignore-name`:
8
+
9
+ * Added support for regular expression options.
10
+
11
+ * Added support for matching with class name in exact match mode.
12
+ [Reported by Jun Aruga]
13
+
14
+ * Updated ruby-talk mailing list information
15
+ [GitHub#168][Patch by Chris Kampmeier]
16
+
17
+ ### Thanks
18
+
19
+ * Chris Kampmeier
20
+
21
+ * Jun Aruga
22
+
3
23
  ## 3.3.5 - 2020-01-10 {#version-3-3-5}
4
24
 
5
25
  ### Improvements
@@ -4,9 +4,9 @@ require 'test/unit/autorunner'
4
4
  module Test # :nodoc:
5
5
  #
6
6
  # # Test::Unit - Ruby Unit Testing Framework
7
- #
7
+ #
8
8
  # ## Introduction
9
- #
9
+ #
10
10
  # Unit testing is making waves all over the place, largely due to the
11
11
  # fact that it is a core practice of XP. While XP is great, unit testing
12
12
  # has been around for a long time and has always been a good idea. One
@@ -18,19 +18,19 @@ module Test # :nodoc:
18
18
  # as possible, you slowly build up a wall of things that cannot break
19
19
  # without you immediately knowing about it. This is when unit testing
20
20
  # hits its peak usefulness.
21
- #
21
+ #
22
22
  # Enter Test::Unit, a framework for unit testing in Ruby, helping you to
23
23
  # design, debug and evaluate your code by making it easy to write and
24
24
  # have tests for it.
25
- #
26
- #
25
+ #
26
+ #
27
27
  # ## Notes
28
- #
28
+ #
29
29
  # Test::Unit has grown out of and superceded Lapidary.
30
- #
31
- #
30
+ #
31
+ #
32
32
  # ## Feedback
33
- #
33
+ #
34
34
  # I like (and do my best to practice) XP, so I value early releases,
35
35
  # user feedback, and clean, simple, expressive code. There is always
36
36
  # room for improvement in everything I do, and Test::Unit is no
@@ -41,73 +41,78 @@ module Test # :nodoc:
41
41
  # hear about any successes you have with Test::Unit, and any
42
42
  # documentation you might add will be greatly appreciated. My contact
43
43
  # info is below.
44
- #
45
- #
44
+ #
45
+ #
46
46
  # ## Contact Information
47
- #
48
- # A lot of discussion happens about Ruby in general on the ruby-talk
49
- # mailing list (http://www.ruby-lang.org/en/ml.html), and you can ask
50
- # any questions you might have there. I monitor the list, as do many
51
- # other helpful Rubyists, and you're sure to get a quick answer. Of
52
- # course, you're also welcome to email me (Nathaniel Talbott) directly
53
- # at mailto:testunit@talbott.ws, and I'll do my best to help you out.
54
- #
55
- #
47
+ #
48
+ # * [GitHub issues on
49
+ # test-unit/test-unit](https://github.com/test-unit/test-unit/issues):
50
+ # If you have any issues, please report them to here.
51
+ #
52
+ # * [GitHub pull requests on
53
+ # test-unit/test-unit](https://github.com/test-unit/test-unit/pulls):
54
+ # If you have any patches, please report them to here.
55
+ #
56
+ # * [ruby-talk mailing
57
+ # list](https://www.ruby-lang.org/en/community/mailing-lists/):
58
+ # If you have any questions, you can ask them here.
59
+ #
60
+ #
56
61
  # ## Credits
57
- #
62
+ #
58
63
  # I'd like to thank...
59
- #
64
+ #
60
65
  # Matz, for a great language!
61
- #
66
+ #
62
67
  # Masaki Suketa, for his work on RubyUnit, which filled a vital need in
63
68
  # the Ruby world for a very long time. I'm also grateful for his help in
64
69
  # polishing Test::Unit and getting the RubyUnit compatibility layer
65
70
  # right. His graciousness in allowing Test::Unit to supercede RubyUnit
66
71
  # continues to be a challenge to me to be more willing to defer my own
67
72
  # rights.
68
- #
73
+ #
69
74
  # Ken McKinlay, for his interest and work on unit testing, and for his
70
75
  # willingness to dialog about it. He was also a great help in pointing
71
76
  # out some of the holes in the RubyUnit compatibility layer.
72
- #
77
+ #
73
78
  # Dave Thomas, for the original idea that led to the extremely simple
74
79
  # "require 'test/unit'", plus his code to improve it even more by
75
80
  # allowing the selection of tests from the command-line. Also, without
76
81
  # RDoc, the documentation for Test::Unit would stink a lot more than it
77
82
  # does now.
78
- #
83
+ #
79
84
  # Everyone who's helped out with bug reports, feature ideas,
80
85
  # encouragement to continue, etc. It's a real privilege to be a part of
81
86
  # the Ruby community.
82
- #
87
+ #
83
88
  # The guys at RoleModel Software, for putting up with me repeating, "But
84
89
  # this would be so much easier in Ruby!" whenever we're coding in Java.
85
- #
90
+ #
86
91
  # My Creator, for giving me life, and giving it more abundantly.
87
- #
88
- #
92
+ #
93
+ #
89
94
  # ## License
90
- #
95
+ #
91
96
  # Test::Unit is copyright (c) 2000-2003 Nathaniel Talbott. It is free
92
97
  # software, and is distributed under the Ruby license. See the COPYING
93
98
  # file.
94
- #
99
+ #
95
100
  # Exception: lib/test/unit/diff.rb is copyright (c)
96
101
  # 2008-2010 Kouhei Sutou and 2001-2008 Python Software
97
102
  # Foundation. It is free software, and is distributed
98
103
  # under the Ruby license and/or the PSF license. See the
99
104
  # COPYING file and PSFL file.
100
- #
105
+ #
101
106
  # ## Warranty
102
- #
107
+ #
103
108
  # This software is provided "as is" and without any express or
104
109
  # implied warranties, including, without limitation, the implied
105
110
  # warranties of merchantibility and fitness for a particular
106
111
  # purpose.
107
- #
108
- #
112
+ #
113
+ #
109
114
  # ## Author
110
- #
115
+ #
111
116
  # Nathaniel Talbott.
112
117
  # Copyright (c) 2000-2003, Nathaniel Talbott
113
118
  #
@@ -246,54 +246,61 @@ module Test
246
246
 
247
247
  o.on("-n", "--name=NAME", String,
248
248
  "Runs tests matching NAME.",
249
- "Use '/PATTERN/' for NAME to use regular expression.") do |name|
250
- name = (%r{\A/(.*)/\Z} =~ name ? Regexp.new($1) : name)
249
+ "Use '/PATTERN/' for NAME to use regular expression.",
250
+ "Regular expression accepts options.",
251
+ "Example: '/taRget/i' matches 'target' and 'TARGET'") do |name|
252
+ name = prepare_name(name)
251
253
  @filters << lambda do |test|
252
- return true if name === test.method_name
253
- return true if name === test.local_name
254
- false
254
+ match_test_name(test, name)
255
255
  end
256
256
  end
257
257
 
258
258
  o.on("--ignore-name=NAME", String,
259
259
  "Ignores tests matching NAME.",
260
- "Use '/PATTERN/' for NAME to use regular expression.") do |n|
261
- n = (%r{\A/(.*)/\Z} =~ n ? Regexp.new($1) : n)
262
- case n
263
- when Regexp
264
- @filters << proc {|t| n =~ t.method_name ? false : true}
265
- else
266
- @filters << proc {|t| n != t.method_name}
260
+ "Use '/PATTERN/' for NAME to use regular expression.",
261
+ "Regular expression accepts options.",
262
+ "Example: '/taRget/i' matches 'target' and 'TARGET'") do |name|
263
+ name = prepare_name(name)
264
+ @filters << lambda do |test|
265
+ not match_test_name(test, name)
267
266
  end
268
267
  end
269
268
 
270
269
  o.on("-t", "--testcase=TESTCASE", String,
271
270
  "Runs tests in TestCases matching TESTCASE.",
272
- "Use '/PATTERN/' for TESTCASE to use regular expression.") do |n|
273
- n = (%r{\A/(.*)/\Z} =~ n ? Regexp.new($1) : n)
271
+ "Use '/PATTERN/' for TESTCASE to use regular expression.",
272
+ "Regular expression accepts options.",
273
+ "Example: '/taRget/i' matches 'target' and 'TARGET'") do |name|
274
+ name = prepare_name(name)
274
275
  @filters << lambda do |test|
275
- match_test_case_name(test, n)
276
+ match_test_case_name(test, name)
276
277
  end
277
278
  end
278
279
 
279
280
  o.on("--ignore-testcase=TESTCASE", String,
280
281
  "Ignores tests in TestCases matching TESTCASE.",
281
- "Use '/PATTERN/' for TESTCASE to use regular expression.") do |n|
282
- n = (%r{\A/(.*)/\Z} =~ n ? Regexp.new($1) : n)
282
+ "Use '/PATTERN/' for TESTCASE to use regular expression.",
283
+ "Regular expression accepts options.",
284
+ "Example: '/taRget/i' matches 'target' and 'TARGET'") do |name|
285
+ name = prepare_name(name)
283
286
  @filters << lambda do |test|
284
- not match_test_case_name(test, n)
287
+ not match_test_case_name(test, name)
285
288
  end
286
289
  end
287
290
 
288
291
  o.on("--location=LOCATION", String,
289
292
  "Runs tests that defined in LOCATION.",
290
- "LOCATION is one of PATH:LINE, PATH or LINE") do |location|
291
- if /\A\d+\z/ =~ location
293
+ "LOCATION is one of PATH:LINE, PATH or LINE.") do |location|
294
+ case location
295
+ when /\A(\d+)\z/
292
296
  path = nil
293
- line = location.to_i
297
+ line = $1.to_i
298
+ when /:(\d+)\z/
299
+ path = $PREMATCH
300
+ line = $1.to_i
294
301
  else
295
- path, line, = location.split(/:(\d+)/, 2)
296
- line = line.to_i unless line.nil?
302
+ path = location
303
+ line = nil
297
304
  end
298
305
  add_location_filter(path, line)
299
306
  end
@@ -496,6 +503,31 @@ module Test
496
503
  end
497
504
  end
498
505
 
506
+ def prepare_name(name)
507
+ case name
508
+ when /\A\/(.*)\/([imx]*)\z/
509
+ pattern = $1
510
+ options_raw = $2
511
+ options = 0
512
+ options |= Regexp::IGNORECASE if options_raw.include?("i")
513
+ options |= Regexp::MULTILINE if options_raw.include?("m")
514
+ options |= Regexp::EXTENDED if options_raw.include?("x")
515
+ Regexp.new(pattern, options)
516
+ else
517
+ name
518
+ end
519
+ end
520
+
521
+ def match_test_name(test, pattern)
522
+ return true if pattern === test.method_name
523
+ return true if pattern === test.local_name
524
+ if pattern.is_a?(String)
525
+ return true if pattern === "#{test.class}##{test.method_name}"
526
+ return true if pattern === "#{test.class}##{test.local_name}"
527
+ end
528
+ false
529
+ end
530
+
499
531
  def match_test_case_name(test, pattern)
500
532
  test.class.ancestors.each do |test_class|
501
533
  break if test_class == TestCase
@@ -1,5 +1,5 @@
1
1
  module Test
2
2
  module Unit
3
- VERSION = "3.3.5"
3
+ VERSION = "3.3.6"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: test-unit
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.3.5
4
+ version: 3.3.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kouhei Sutou
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-01-10 00:00:00.000000000 Z
12
+ date: 2020-06-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: power_assert
@@ -231,49 +231,48 @@ required_rubygems_version: !ruby/object:Gem::Requirement
231
231
  - !ruby/object:Gem::Version
232
232
  version: '0'
233
233
  requirements: []
234
- rubyforge_project:
235
- rubygems_version: 2.7.6.2
234
+ rubygems_version: 3.2.0.pre1
236
235
  signing_key:
237
236
  specification_version: 4
238
237
  summary: An xUnit family unit testing framework for Ruby.
239
238
  test_files:
240
- - test/util/test_procwrapper.rb
241
- - test/util/test_observable.rb
242
- - test/util/test-output.rb
243
- - test/util/test-method-owner-finder.rb
244
- - test/util/test_backtracefilter.rb
245
- - test/test-diff.rb
246
- - test/test-assertions.rb
247
- - test/testunit-test-util.rb
248
- - test/run-test.rb
249
- - test/test-emacs-runner.rb
250
- - test/test-color.rb
251
- - test/test-pending.rb
252
- - test/test-omission.rb
253
- - test/test-color-scheme.rb
254
- - test/test-test-result.rb
255
- - test/test-test-suite.rb
256
- - test/test-code-snippet.rb
257
- - test/test-test-case.rb
258
- - test/test-failure.rb
259
- - test/fixtures/no-header.csv
239
+ - test/collector/test-descendant.rb
240
+ - test/collector/test-load.rb
241
+ - test/collector/test_dir.rb
242
+ - test/collector/test_objectspace.rb
243
+ - test/fixtures/header-label.csv
260
244
  - test/fixtures/header-label.tsv
261
- - test/fixtures/no-header.tsv
262
245
  - test/fixtures/header.csv
263
- - test/fixtures/header-label.csv
264
- - test/fixtures/plus.csv
265
246
  - test/fixtures/header.tsv
266
- - test/ui/test_testrunmediator.rb
247
+ - test/fixtures/no-header.csv
248
+ - test/fixtures/no-header.tsv
249
+ - test/fixtures/plus.csv
250
+ - test/run-test.rb
251
+ - test/test-assertions.rb
252
+ - test/test-attribute-matcher.rb
253
+ - test/test-attribute.rb
254
+ - test/test-code-snippet.rb
255
+ - test/test-color-scheme.rb
256
+ - test/test-color.rb
257
+ - test/test-data.rb
258
+ - test/test-diff.rb
259
+ - test/test-emacs-runner.rb
260
+ - test/test-error.rb
261
+ - test/test-failure.rb
262
+ - test/test-fault-location-detector.rb
267
263
  - test/test-fixture.rb
264
+ - test/test-notification.rb
265
+ - test/test-omission.rb
266
+ - test/test-pending.rb
268
267
  - test/test-priority.rb
268
+ - test/test-test-case.rb
269
+ - test/test-test-result.rb
269
270
  - test/test-test-suite-creator.rb
270
- - test/test-attribute.rb
271
- - test/test-notification.rb
272
- - test/test-attribute-matcher.rb
273
- - test/test-fault-location-detector.rb
274
- - test/collector/test-descendant.rb
275
- - test/collector/test_objectspace.rb
276
- - test/collector/test-load.rb
277
- - test/collector/test_dir.rb
278
- - test/test-error.rb
279
- - test/test-data.rb
271
+ - test/test-test-suite.rb
272
+ - test/testunit-test-util.rb
273
+ - test/ui/test_testrunmediator.rb
274
+ - test/util/test-method-owner-finder.rb
275
+ - test/util/test-output.rb
276
+ - test/util/test_backtracefilter.rb
277
+ - test/util/test_observable.rb
278
+ - test/util/test_procwrapper.rb