test-unit 3.2.9 → 3.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/doc/text/news.md +30 -0
- data/lib/test/unit/attribute.rb +2 -1
- data/lib/test/unit/autorunner.rb +8 -4
- data/lib/test/unit/code-snippet-fetcher.rb +4 -6
- data/lib/test/unit/data-sets.rb +2 -2
- data/lib/test/unit/testcase.rb +38 -16
- data/lib/test/unit/version.rb +1 -1
- data/test/test-code-snippet.rb +42 -0
- data/test/testunit-test-util.rb +2 -0
- metadata +35 -36
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c6d7db2480ed758082e59182df3607410a66eb81c5c3433b3dd76bd1cf31e5f3
|
4
|
+
data.tar.gz: e25d8749320d74cef4eb57f44acee0d7797bab72568e1e3cdf9b23249b1ebf97
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4b18901db0bab8ecfbba34de97e02163598b729e6be44a176ebfb1b06586e7f9079fe674f18275e2c06dfedea024a88bb06596040b250bfa6f5d2ae40e99c181
|
7
|
+
data.tar.gz: 1a6ebdaeebe74f649aa06f94e205d216300aeb018f762b2082382cbef405e5482a03a8095b2b3b86210ad6379bce8ba481b7fd25dec60a15b8206340c18b45a8
|
data/doc/text/news.md
CHANGED
@@ -1,5 +1,35 @@
|
|
1
1
|
# News
|
2
2
|
|
3
|
+
## 3.3.0 - 2019-01-23 {#version-3-3-0}
|
4
|
+
|
5
|
+
### Improvements
|
6
|
+
|
7
|
+
* Added support for auto test run when all tests are defined in
|
8
|
+
modules.
|
9
|
+
|
10
|
+
* Added support for defining methods to test case class in multiple
|
11
|
+
threads.
|
12
|
+
[GitHub#159][Reported by Charles Oliver Nutter]
|
13
|
+
|
14
|
+
* Suppressed warnings on Ruby 2.5.
|
15
|
+
[GitHub#160][Reported by Daniel Berger]
|
16
|
+
|
17
|
+
* Suppressed warnings on Ruby 2.7.
|
18
|
+
|
19
|
+
### Fixes
|
20
|
+
|
21
|
+
* Fixed a code snippet fetch failure when source code isn't UTF-8
|
22
|
+
and the default external encoding is set to not UTF-8.
|
23
|
+
[GitHub#161][Reported by masa kunikata]
|
24
|
+
|
25
|
+
### Thanks
|
26
|
+
|
27
|
+
* Charles Oliver Nutter
|
28
|
+
|
29
|
+
* Daniel Berger
|
30
|
+
|
31
|
+
* masa kunikata
|
32
|
+
|
3
33
|
## 3.2.9 - 2018-12-01 {#version-3-2-9}
|
4
34
|
|
5
35
|
### Improvements
|
data/lib/test/unit/attribute.rb
CHANGED
@@ -204,7 +204,8 @@ module Test
|
|
204
204
|
end
|
205
205
|
|
206
206
|
@@attribute_observers = StringifyKeyHash.new
|
207
|
-
def register_attribute_observer(attribute_name, observer=
|
207
|
+
def register_attribute_observer(attribute_name, observer=nil, &block)
|
208
|
+
observer ||= Proc.new(&block)
|
208
209
|
@@attribute_observers[attribute_name] ||= []
|
209
210
|
@@attribute_observers[attribute_name] << observer
|
210
211
|
end
|
data/lib/test/unit/autorunner.rb
CHANGED
@@ -15,7 +15,8 @@ module Test
|
|
15
15
|
PREPARE_HOOKS = []
|
16
16
|
|
17
17
|
class << self
|
18
|
-
def register_runner(id, runner_builder=
|
18
|
+
def register_runner(id, runner_builder=nil, &block)
|
19
|
+
runner_builder ||= Proc.new(&block)
|
19
20
|
RUNNERS[id] = runner_builder
|
20
21
|
RUNNERS[id.to_s] = runner_builder
|
21
22
|
end
|
@@ -33,7 +34,8 @@ module Test
|
|
33
34
|
@@default_runner = id
|
34
35
|
end
|
35
36
|
|
36
|
-
def register_collector(id, collector_builder=
|
37
|
+
def register_collector(id, collector_builder=nil, &block)
|
38
|
+
collector_builder ||= Proc.new(&block)
|
37
39
|
COLLECTORS[id] = collector_builder
|
38
40
|
COLLECTORS[id.to_s] = collector_builder
|
39
41
|
end
|
@@ -46,11 +48,13 @@ module Test
|
|
46
48
|
ColorScheme[id] = scheme
|
47
49
|
end
|
48
50
|
|
49
|
-
def setup_option(option_builder=
|
51
|
+
def setup_option(option_builder=nil, &block)
|
52
|
+
option_builder ||= Proc.new(&block)
|
50
53
|
ADDITIONAL_OPTIONS << option_builder
|
51
54
|
end
|
52
55
|
|
53
|
-
def prepare(hook=
|
56
|
+
def prepare(hook=nil, &block)
|
57
|
+
hook ||= Proc.new(&block)
|
54
58
|
PREPARE_HOOKS << hook
|
55
59
|
end
|
56
60
|
|
@@ -26,14 +26,12 @@ module Test
|
|
26
26
|
def read_source(path)
|
27
27
|
return nil unless File.exist?(path)
|
28
28
|
lines = []
|
29
|
-
File.open(path) do |file|
|
29
|
+
File.open(path, "rb") do |file|
|
30
30
|
first_line = file.gets
|
31
31
|
break if first_line.nil?
|
32
|
-
encoding = detect_encoding(first_line)
|
33
|
-
|
34
|
-
|
35
|
-
file.set_encoding(encoding, encoding)
|
36
|
-
end
|
32
|
+
encoding = detect_encoding(first_line) || Encoding::UTF_8
|
33
|
+
first_line.force_encoding(encoding)
|
34
|
+
file.set_encoding(encoding)
|
37
35
|
lines << first_line
|
38
36
|
lines.concat(file.readlines)
|
39
37
|
end
|
data/lib/test/unit/data-sets.rb
CHANGED
@@ -83,8 +83,8 @@ module Test
|
|
83
83
|
grouped_variables = variables.group_by do |_, options|
|
84
84
|
options[:group]
|
85
85
|
end
|
86
|
-
grouped_variables.each do |group,
|
87
|
-
each_raw_pattern(
|
86
|
+
grouped_variables.each do |group, group_variables|
|
87
|
+
each_raw_pattern(group_variables) do |cell|
|
88
88
|
label = String.new
|
89
89
|
label << "group: #{group.inspect}" unless group.nil?
|
90
90
|
data = {}
|
data/lib/test/unit/testcase.rb
CHANGED
@@ -130,6 +130,15 @@ module Test
|
|
130
130
|
super
|
131
131
|
end
|
132
132
|
|
133
|
+
def include(*modules, &block) # :nodoc:
|
134
|
+
super
|
135
|
+
modules.each do |mod|
|
136
|
+
mod.public_instance_methods(false).each do |method_name|
|
137
|
+
AutoRunnerLoader.check(self, method_name.to_s)
|
138
|
+
end
|
139
|
+
end
|
140
|
+
end
|
141
|
+
|
133
142
|
@@added_method_names = {}
|
134
143
|
def method_added(name) # :nodoc:
|
135
144
|
super
|
@@ -150,11 +159,12 @@ module Test
|
|
150
159
|
path, line, = caller[0].split(/:(\d+)/, 2)
|
151
160
|
line = line.to_i if line
|
152
161
|
end
|
153
|
-
|
162
|
+
location = {
|
154
163
|
:method_name => stringified_name,
|
155
164
|
:path => File.expand_path(path),
|
156
165
|
:line => line,
|
157
166
|
}
|
167
|
+
add_method_location(location)
|
158
168
|
added_method_names[stringified_name] = true
|
159
169
|
AutoRunnerLoader.check(self, stringified_name)
|
160
170
|
end
|
@@ -426,31 +436,43 @@ module Test
|
|
426
436
|
private
|
427
437
|
# @private
|
428
438
|
@@method_locations = {}
|
439
|
+
# @private
|
440
|
+
@@method_location_mutex = Mutex.new
|
441
|
+
|
429
442
|
# @private
|
430
443
|
def method_locations
|
431
444
|
@@method_locations[self] ||= []
|
432
445
|
end
|
433
446
|
|
434
447
|
# @private
|
435
|
-
def
|
436
|
-
|
437
|
-
|
438
|
-
path = self_location[:path] if self_location
|
448
|
+
def add_method_location(location)
|
449
|
+
@@method_location_mutex.synchronize do
|
450
|
+
method_locations << location
|
439
451
|
end
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
|
444
|
-
|
445
|
-
|
446
|
-
|
447
|
-
|
448
|
-
|
449
|
-
|
452
|
+
end
|
453
|
+
|
454
|
+
# @private
|
455
|
+
def target_method_locations(path)
|
456
|
+
@@method_location_mutex.synchronize do
|
457
|
+
if path.nil?
|
458
|
+
self_location = method_locations.first
|
459
|
+
path = self_location[:path] if self_location
|
460
|
+
end
|
461
|
+
return [] if path.nil?
|
462
|
+
|
463
|
+
target_locations = []
|
464
|
+
@@method_locations.each do |test_case, locations|
|
465
|
+
locations.each do |location|
|
466
|
+
absolete_path = File.expand_path(path)
|
467
|
+
location_path = location[:path]
|
468
|
+
location_basename = File.basename(location_path)
|
469
|
+
if location_path == absolete_path or location_basename == path
|
470
|
+
target_locations << location.merge(:test_case => test_case)
|
471
|
+
end
|
450
472
|
end
|
451
473
|
end
|
474
|
+
target_locations
|
452
475
|
end
|
453
|
-
target_locations
|
454
476
|
end
|
455
477
|
end
|
456
478
|
|
data/lib/test/unit/version.rb
CHANGED
data/test/test-code-snippet.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
1
3
|
require "test-unit"
|
2
4
|
require "testunit-test-util"
|
3
5
|
|
@@ -34,4 +36,44 @@ class TestCodeSnippet < Test::Unit::TestCase
|
|
34
36
|
end
|
35
37
|
end
|
36
38
|
end
|
39
|
+
|
40
|
+
class TestDefaultExternal < self
|
41
|
+
def suppress_warning
|
42
|
+
verbose = $VERBOSE
|
43
|
+
begin
|
44
|
+
$VERBOSE = false
|
45
|
+
yield
|
46
|
+
ensure
|
47
|
+
$VERBOSE = verbose
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def setup
|
52
|
+
suppress_warning do
|
53
|
+
@default_external = Encoding.default_external
|
54
|
+
end
|
55
|
+
@fetcher = Test::Unit::CodeSnippetFetcher.new
|
56
|
+
end
|
57
|
+
|
58
|
+
def teardown
|
59
|
+
suppress_warning do
|
60
|
+
Encoding.default_external = @default_external
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
def test_windows_31j
|
65
|
+
source = Tempfile.new(["test-code-snippet", ".rb"])
|
66
|
+
source.puts(<<-SOURCE)
|
67
|
+
puts("あいうえお")
|
68
|
+
SOURCE
|
69
|
+
source.flush
|
70
|
+
suppress_warning do
|
71
|
+
Encoding.default_external = "Windows-31J"
|
72
|
+
end
|
73
|
+
assert_equal([
|
74
|
+
[1, "puts(\"あいうえお\")", {:target_line? => false}],
|
75
|
+
],
|
76
|
+
@fetcher.fetch(source.path, 0))
|
77
|
+
end
|
78
|
+
end
|
37
79
|
end
|
data/test/testunit-test-util.rb
CHANGED
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.
|
4
|
+
version: 3.3.0
|
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:
|
12
|
+
date: 2019-01-23 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
|
-
|
235
|
-
rubygems_version: 3.0.0.beta2
|
234
|
+
rubygems_version: 3.0.2
|
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/test
|
241
|
-
- test/test-
|
242
|
-
- test/test-attribute.rb
|
239
|
+
- test/run-test.rb
|
240
|
+
- test/testunit-test-util.rb
|
243
241
|
- test/test-priority.rb
|
244
|
-
- test/test-color-scheme.rb
|
245
|
-
- test/test-failure.rb
|
246
|
-
- test/test-color.rb
|
247
|
-
- test/ui/test_testrunmediator.rb
|
248
|
-
- test/test-attribute-matcher.rb
|
249
242
|
- test/test-test-suite.rb
|
243
|
+
- test/test-error.rb
|
244
|
+
- test/test-notification.rb
|
245
|
+
- test/test-fault-location-detector.rb
|
250
246
|
- test/test-test-suite-creator.rb
|
251
|
-
- test/test-diff.rb
|
252
|
-
- test/test-emacs-runner.rb
|
253
247
|
- test/test-data.rb
|
254
|
-
- test/
|
248
|
+
- test/util/test-output.rb
|
249
|
+
- test/util/test_backtracefilter.rb
|
250
|
+
- test/util/test_procwrapper.rb
|
251
|
+
- test/util/test_observable.rb
|
252
|
+
- test/util/test-method-owner-finder.rb
|
253
|
+
- test/test-failure.rb
|
254
|
+
- test/test-pending.rb
|
255
|
+
- test/test-test-case.rb
|
256
|
+
- test/test-attribute-matcher.rb
|
257
|
+
- test/test-omission.rb
|
258
|
+
- test/test-color.rb
|
259
|
+
- test/ui/test_testrunmediator.rb
|
260
|
+
- test/test-fixture.rb
|
261
|
+
- test/test-attribute.rb
|
262
|
+
- test/test-code-snippet.rb
|
263
|
+
- test/collector/test_objectspace.rb
|
264
|
+
- test/collector/test-load.rb
|
265
|
+
- test/collector/test-descendant.rb
|
266
|
+
- test/collector/test_dir.rb
|
267
|
+
- test/test-color-scheme.rb
|
268
|
+
- test/test-assertions.rb
|
269
|
+
- test/fixtures/plus.csv
|
270
|
+
- test/fixtures/header-label.csv
|
255
271
|
- test/fixtures/header.tsv
|
256
272
|
- test/fixtures/no-header.tsv
|
257
|
-
- test/fixtures/
|
258
|
-
- test/fixtures/no-header.csv
|
273
|
+
- test/fixtures/header.csv
|
259
274
|
- test/fixtures/header-label.tsv
|
260
|
-
- test/fixtures/header
|
261
|
-
- test/test-
|
275
|
+
- test/fixtures/no-header.csv
|
276
|
+
- test/test-emacs-runner.rb
|
262
277
|
- test/test-test-result.rb
|
263
|
-
- test/
|
264
|
-
- test/collector/test-load.rb
|
265
|
-
- test/collector/test_dir.rb
|
266
|
-
- test/collector/test_objectspace.rb
|
267
|
-
- test/collector/test-descendant.rb
|
268
|
-
- test/test-error.rb
|
269
|
-
- test/run-test.rb
|
270
|
-
- test/test-pending.rb
|
271
|
-
- test/test-fixture.rb
|
272
|
-
- test/util/test-output.rb
|
273
|
-
- test/util/test-method-owner-finder.rb
|
274
|
-
- test/util/test_observable.rb
|
275
|
-
- test/util/test_procwrapper.rb
|
276
|
-
- test/util/test_backtracefilter.rb
|
277
|
-
- test/test-notification.rb
|
278
|
-
- test/test-omission.rb
|
279
|
-
- test/test-test-case.rb
|
278
|
+
- test/test-diff.rb
|