test-unit 3.3.5 → 3.3.6

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: 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