test-unit 2.0.7 → 2.0.8
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.
- data/History.txt +24 -1
- data/README.txt +1 -0
- data/lib/test/unit/assertions.rb +79 -11
- data/lib/test/unit/collector/load.rb +14 -6
- data/lib/test/unit/color-scheme.rb +6 -2
- data/lib/test/unit/diff.rb +10 -1
- data/lib/test/unit/testcase.rb +2 -0
- data/lib/test/unit/ui/console/testrunner.rb +1 -1
- data/lib/test/unit/util/backtracefilter.rb +1 -0
- data/lib/test/unit/version.rb +1 -1
- data/test/collector/test-load.rb +102 -8
- data/test/test-color-scheme.rb +4 -2
- data/test/test_assertions.rb +24 -2
- metadata +27 -36
data/History.txt
CHANGED
@@ -1,3 +1,26 @@
|
|
1
|
+
=== 2.0.8 / 2010-06-02
|
2
|
+
|
3
|
+
* 5 major enchancements
|
4
|
+
* collect *_test.rb and *-test.rb files as test files.
|
5
|
+
* [#28181] improve assert_in_delta message.
|
6
|
+
[Suggested by David MARCHALAND]
|
7
|
+
* show string encoding in assert_equal failure message if
|
8
|
+
they are different.
|
9
|
+
* change default color scheme:
|
10
|
+
* success: green back + white
|
11
|
+
* failure: red back + white
|
12
|
+
* add capture_output.
|
13
|
+
|
14
|
+
* 2 bug fixes
|
15
|
+
* fix a bug that console runner on verbose mode causes an
|
16
|
+
error for long test name (>= 61).
|
17
|
+
* [#28093] Autorunner ignores all files in a directory named test by default
|
18
|
+
[Reported by Florian Frank]
|
19
|
+
|
20
|
+
* Thanks
|
21
|
+
* Florian Frank
|
22
|
+
* David MARCHALAND
|
23
|
+
|
1
24
|
=== 2.0.7 / 2010-03-09
|
2
25
|
|
3
26
|
* 4 major enhancements
|
@@ -14,7 +37,7 @@
|
|
14
37
|
* [#27792] require 'fileutils' and 'tmpdir' lazily for non-priority
|
15
38
|
mode users. [Suggested by David MARCHALAND]
|
16
39
|
|
17
|
-
*
|
40
|
+
* 2 bug fixes
|
18
41
|
* [#27892] modify processed arguments array destructively.
|
19
42
|
[Reported by Bob Saveland]
|
20
43
|
* work without HOME environment variable.
|
data/README.txt
CHANGED
data/lib/test/unit/assertions.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Author:: Nathaniel Talbott.
|
2
2
|
# Copyright:: Copyright (c) 2000-2003 Nathaniel Talbott. All rights reserved.
|
3
|
-
# Copyright (c) 2009 Kouhei Sutou.
|
3
|
+
# Copyright (c) 2009-2010 Kouhei Sutou. All rights reserved.
|
4
4
|
# License:: Ruby license.
|
5
5
|
|
6
6
|
require 'test/unit/assertionfailederror'
|
@@ -80,10 +80,23 @@ module Test
|
|
80
80
|
public
|
81
81
|
def assert_equal(expected, actual, message=nil)
|
82
82
|
diff = AssertionMessage.delayed_diff(expected, actual)
|
83
|
-
|
83
|
+
if expected.respond_to?(:encoding) and
|
84
|
+
actual.respond_to?(:encoding) and
|
85
|
+
expected.encoding != actual.encoding
|
86
|
+
format = <<EOT
|
87
|
+
<?>(?) expected but was
|
88
|
+
<?>(?).?
|
89
|
+
EOT
|
90
|
+
full_message = build_message(message, format,
|
91
|
+
expected, expected.encoding.name,
|
92
|
+
actual, actual.encoding.name,
|
93
|
+
diff)
|
94
|
+
else
|
95
|
+
full_message = build_message(message, <<EOT, expected, actual, diff)
|
84
96
|
<?> expected but was
|
85
97
|
<?>.?
|
86
98
|
EOT
|
99
|
+
end
|
87
100
|
begin
|
88
101
|
assert_block(full_message) { expected == actual }
|
89
102
|
rescue AssertionFailedError => failure
|
@@ -539,18 +552,73 @@ EOT
|
|
539
552
|
public
|
540
553
|
def assert_in_delta(expected_float, actual_float, delta, message="")
|
541
554
|
_wrap_assertion do
|
542
|
-
|
543
|
-
|
544
|
-
|
545
|
-
|
546
|
-
|
547
|
-
|
548
|
-
|
549
|
-
|
555
|
+
_assert_in_delta_validate_arguments(expected_float,
|
556
|
+
actual_float,
|
557
|
+
delta)
|
558
|
+
full_message = _assert_in_delta_message(expected_float,
|
559
|
+
actual_float,
|
560
|
+
delta,
|
561
|
+
message)
|
562
|
+
assert_block(full_message) do
|
563
|
+
(expected_float.to_f - actual_float.to_f).abs <= delta.to_f
|
564
|
+
end
|
565
|
+
end
|
566
|
+
end
|
567
|
+
|
568
|
+
# :stopdoc:
|
569
|
+
private
|
570
|
+
def _assert_in_delta_validate_arguments(expected_float,
|
571
|
+
actual_float,
|
572
|
+
delta)
|
573
|
+
{
|
574
|
+
expected_float => "first float",
|
575
|
+
actual_float => "second float",
|
576
|
+
delta => "delta"
|
577
|
+
}.each do |float, name|
|
578
|
+
assert_respond_to(float, :to_f,
|
579
|
+
"The arguments must respond to to_f; " +
|
580
|
+
"the #{name} did not")
|
581
|
+
end
|
582
|
+
assert_operator(delta, :>=, 0.0, "The delta should not be negative")
|
583
|
+
end
|
584
|
+
|
585
|
+
def _assert_in_delta_message(expected_float, actual_float, delta,
|
586
|
+
message)
|
587
|
+
format = <<-EOT
|
588
|
+
<?> expected but was
|
589
|
+
<?> (tolerance <?>).
|
590
|
+
EOT
|
591
|
+
arguments = [expected_float, actual_float, delta]
|
592
|
+
normalized_expected = expected_float.to_f
|
593
|
+
normalized_actual = actual_float.to_f
|
594
|
+
normalized_delta = delta.to_f
|
595
|
+
relation_format = nil
|
596
|
+
relation_arguments = nil
|
597
|
+
if normalized_actual < normalized_expected - normalized_delta
|
598
|
+
relation_format = "<<?> < <?>-<?>(?) <= <?>+<?>(?)>"
|
599
|
+
relation_arguments = [actual_float,
|
600
|
+
expected_float, delta, expected_float - delta,
|
601
|
+
expected_float, delta, expected_float + delta]
|
602
|
+
elsif normalized_expected - normalized_delta < normalized_actual
|
603
|
+
relation_format = "<<?>-<?>(?) <= <?>+<?>(?) < <?>>"
|
604
|
+
relation_arguments = [expected_float, delta, expected_float - delta,
|
605
|
+
expected_float, delta, expected_float + delta,
|
606
|
+
actual_float]
|
607
|
+
end
|
608
|
+
|
609
|
+
if relation_format
|
610
|
+
format << <<-EOT
|
611
|
+
|
612
|
+
Relation:
|
613
|
+
#{relation_format}
|
550
614
|
EOT
|
551
|
-
|
615
|
+
arguments.concat(relation_arguments)
|
552
616
|
end
|
617
|
+
|
618
|
+
build_message(message, format, *arguments)
|
553
619
|
end
|
620
|
+
public
|
621
|
+
# :startdoc:
|
554
622
|
|
555
623
|
##
|
556
624
|
# Passes if the method send returns a true value.
|
@@ -15,7 +15,7 @@ module Test
|
|
15
15
|
super
|
16
16
|
@system_excludes = [/~\z/, /\A\.\#/]
|
17
17
|
@system_directory_excludes = [/\A(?:CVS|\.svn|\.git)\z/]
|
18
|
-
@patterns = [/\Atest[_\-].+\.rb\z/m]
|
18
|
+
@patterns = [/\Atest[_\-].+\.rb\z/m, /[_\-]test\.rb\z/]
|
19
19
|
@excludes = []
|
20
20
|
@base = nil
|
21
21
|
end
|
@@ -28,11 +28,17 @@ module Test
|
|
28
28
|
def collect(*froms)
|
29
29
|
add_load_path(@base) do
|
30
30
|
froms = ["."] if froms.empty?
|
31
|
-
test_suites =
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
31
|
+
test_suites = []
|
32
|
+
already_gathered = find_test_cases
|
33
|
+
froms.each do |from|
|
34
|
+
from = resolve_path(from)
|
35
|
+
if from.directory?
|
36
|
+
test_suite = collect_recursive(from, already_gathered)
|
37
|
+
test_suites << test_suite unless test_suite.tests.empty?
|
38
|
+
else
|
39
|
+
collect_file(from, test_suites, already_gathered)
|
40
|
+
end
|
41
|
+
end
|
36
42
|
|
37
43
|
if test_suites.size > 1
|
38
44
|
test_suite = TestSuite.new("[#{froms.join(', ')}]")
|
@@ -88,6 +94,8 @@ module Test
|
|
88
94
|
end
|
89
95
|
|
90
96
|
def collect_file(path, test_suites, already_gathered)
|
97
|
+
@program_file ||= File.expand_path($0)
|
98
|
+
return if @program_file == path.to_s
|
91
99
|
add_load_path(path.expand_path.dirname) do
|
92
100
|
require(path.to_s)
|
93
101
|
find_test_cases(already_gathered).each do |test_case|
|
@@ -8,8 +8,12 @@ module Test
|
|
8
8
|
class << self
|
9
9
|
@@default = nil
|
10
10
|
def default
|
11
|
-
@@default ||= new("success" =>
|
12
|
-
|
11
|
+
@@default ||= new("success" =>
|
12
|
+
Color.new("green", :foreground => false) +
|
13
|
+
Color.new("white", :bold => true),
|
14
|
+
"failure" =>
|
15
|
+
Color.new("red", :foreground => false) +
|
16
|
+
Color.new("white", :bold => true),
|
13
17
|
"pending" => Color.new("magenta", :bold => true),
|
14
18
|
"omission" => Color.new("blue", :bold => true),
|
15
19
|
"notification" => Color.new("cyan", :bold => true),
|
data/lib/test/unit/diff.rb
CHANGED
@@ -717,7 +717,16 @@ module Test
|
|
717
717
|
|
718
718
|
def diff(differ_class, from, to, options={})
|
719
719
|
differ = differ_class.new(from.split(/\r?\n/), to.split(/\r?\n/))
|
720
|
-
differ.diff(options)
|
720
|
+
lines = differ.diff(options)
|
721
|
+
if Object.const_defined?(:EncodingError)
|
722
|
+
begin
|
723
|
+
lines.join("\n")
|
724
|
+
rescue EncodingError
|
725
|
+
lines.collect {|line| line.force_encoding("ASCII-8BIT")}.join("\n")
|
726
|
+
end
|
727
|
+
else
|
728
|
+
lines.join("\n")
|
729
|
+
end
|
721
730
|
end
|
722
731
|
end
|
723
732
|
end
|
data/lib/test/unit/testcase.rb
CHANGED
@@ -19,6 +19,7 @@ require 'test/unit/priority'
|
|
19
19
|
require 'test/unit/testsuite'
|
20
20
|
require 'test/unit/assertionfailederror'
|
21
21
|
require 'test/unit/util/backtracefilter'
|
22
|
+
require 'test/unit/util/output'
|
22
23
|
require 'test/unit/util/method-owner-finder'
|
23
24
|
|
24
25
|
module Test
|
@@ -82,6 +83,7 @@ module Test
|
|
82
83
|
include Priority
|
83
84
|
include Assertions
|
84
85
|
include Util::BacktraceFilter
|
86
|
+
include Util::Output
|
85
87
|
|
86
88
|
STARTED = name + "::STARTED" # :nodoc:
|
87
89
|
FINISHED = name + "::FINISHED" # :nodoc:
|
@@ -188,7 +188,7 @@ module Test
|
|
188
188
|
right_space = 8 * 2
|
189
189
|
left_space = @progress_row_max - right_space
|
190
190
|
left_space = left_space - indent.size - name.size
|
191
|
-
tab_stop = "\t" * (
|
191
|
+
tab_stop = "\t" * ([left_space - 1, 0].max / 8)
|
192
192
|
output_single("#{indent}#{name}:#{tab_stop}", nil, VERBOSE)
|
193
193
|
@test_start = Time.now
|
194
194
|
end
|
data/lib/test/unit/version.rb
CHANGED
data/test/collector/test-load.rb
CHANGED
@@ -13,8 +13,9 @@ class TestUnitCollectorLoad < Test::Unit::TestCase
|
|
13
13
|
::Object.const_set(@temporary_test_cases_module_name, Module.new)
|
14
14
|
|
15
15
|
@test_dir = Pathname(Dir.tmpdir) + "test-unit"
|
16
|
-
@
|
17
|
-
@test_dir
|
16
|
+
@extra_test_dir = Pathname(Dir.tmpdir) + "test-unit-extra"
|
17
|
+
ensure_clean_directory(@test_dir)
|
18
|
+
ensure_clean_directory(@extra_test_dir)
|
18
19
|
end
|
19
20
|
|
20
21
|
setup
|
@@ -215,6 +216,53 @@ EOT
|
|
215
216
|
end
|
216
217
|
end
|
217
218
|
|
219
|
+
setup
|
220
|
+
def setup_extra_top_level_test_cases
|
221
|
+
@test_cases12 = @extra_test_dir + "test_cases12.rb"
|
222
|
+
@test_cases12.open("w") do |test_case|
|
223
|
+
test_case.puts(<<-EOT)
|
224
|
+
module #{@temporary_test_cases_module_name}
|
225
|
+
class TestCase121 < Test::Unit::TestCase
|
226
|
+
def test121_1
|
227
|
+
end
|
228
|
+
|
229
|
+
def test121_2
|
230
|
+
end
|
231
|
+
end
|
232
|
+
|
233
|
+
class TestCase122 < Test::Unit::TestCase
|
234
|
+
def test122_1
|
235
|
+
end
|
236
|
+
|
237
|
+
def test122_2
|
238
|
+
end
|
239
|
+
end
|
240
|
+
end
|
241
|
+
EOT
|
242
|
+
end
|
243
|
+
end
|
244
|
+
|
245
|
+
setup
|
246
|
+
def setup_sub_level_extra_test_cases
|
247
|
+
@sub_extra_test_dir = @extra_test_dir + "sub"
|
248
|
+
@sub_extra_test_dir.mkpath
|
249
|
+
|
250
|
+
@cases13_test = @sub_extra_test_dir + "13cases_test.rb"
|
251
|
+
@cases13_test.open("w") do |test_case|
|
252
|
+
test_case.puts(<<-EOT)
|
253
|
+
module #{@temporary_test_cases_module_name}
|
254
|
+
class SubTestCase13 < Test::Unit::TestCase
|
255
|
+
def test13_1
|
256
|
+
end
|
257
|
+
|
258
|
+
def test13_2
|
259
|
+
end
|
260
|
+
end
|
261
|
+
end
|
262
|
+
EOT
|
263
|
+
end
|
264
|
+
end
|
265
|
+
|
218
266
|
def teardown
|
219
267
|
@test_dir.rmtree if @test_dir.exist?
|
220
268
|
::Object.send(:remove_const, @temporary_test_cases_module_name)
|
@@ -231,6 +279,21 @@ EOT
|
|
231
279
|
@sub_test_dir.to_s)
|
232
280
|
end
|
233
281
|
|
282
|
+
def test_simple_collect_test_suffix
|
283
|
+
assert_collect([:suite, {:name => @extra_test_dir.basename.to_s},
|
284
|
+
[:suite, {:name => _test_case_name("TestCase121")},
|
285
|
+
[:test, {:name => "test121_1"}],
|
286
|
+
[:test, {:name => "test121_2"}]],
|
287
|
+
[:suite, {:name => _test_case_name("TestCase122")},
|
288
|
+
[:test, {:name => "test122_1"}],
|
289
|
+
[:test, {:name => "test122_2"}]],
|
290
|
+
[:suite, {:name => @sub_extra_test_dir.basename.to_s},
|
291
|
+
[:suite, {:name => _test_case_name("SubTestCase13")},
|
292
|
+
[:test, {:name => "test13_1"}],
|
293
|
+
[:test, {:name => "test13_2"}]]]],
|
294
|
+
@extra_test_dir.to_s)
|
295
|
+
end
|
296
|
+
|
234
297
|
def test_multilevel_collect
|
235
298
|
assert_collect([:suite, {:name => "."},
|
236
299
|
[:suite, {:name => _test_case_name("TestCase1")},
|
@@ -253,13 +316,39 @@ EOT
|
|
253
316
|
end
|
254
317
|
|
255
318
|
def test_collect_file
|
256
|
-
assert_collect([:suite, {:name =>
|
257
|
-
[:
|
258
|
-
|
259
|
-
[:test, {:name => "test1_2"}]]],
|
319
|
+
assert_collect([:suite, {:name => _test_case_name("TestCase1")},
|
320
|
+
[:test, {:name => "test1_1"}],
|
321
|
+
[:test, {:name => "test1_2"}]],
|
260
322
|
@test_case1.to_s)
|
323
|
+
end
|
261
324
|
|
262
|
-
|
325
|
+
def test_collect_file_no_pattern_match_file_name
|
326
|
+
assert_collect([:suite, {:name => _test_case_name("NoLoadSubTestCase5")},
|
327
|
+
[:test, {:name => "test5_1"}],
|
328
|
+
[:test, {:name => "test5_2"}]],
|
329
|
+
@no_load_sub_test_case5.to_s)
|
330
|
+
end
|
331
|
+
|
332
|
+
def test_collect_file_test_cases
|
333
|
+
assert_collect([:suite, {:name => "[#{@test_cases12}]"},
|
334
|
+
[:suite, {:name => _test_case_name("TestCase121")},
|
335
|
+
[:test, {:name => "test121_1"}],
|
336
|
+
[:test, {:name => "test121_2"}]],
|
337
|
+
[:suite, {:name => _test_case_name("TestCase122")},
|
338
|
+
[:test, {:name => "test122_1"}],
|
339
|
+
[:test, {:name => "test122_2"}]]],
|
340
|
+
@test_cases12.to_s)
|
341
|
+
end
|
342
|
+
|
343
|
+
def test_collect_files
|
344
|
+
assert_collect([:suite,
|
345
|
+
{:name => "[#{@test_case1}, #{@test_case2}]"},
|
346
|
+
[:suite, {:name => _test_case_name("TestCase1")},
|
347
|
+
[:test, {:name => "test1_1"}],
|
348
|
+
[:test, {:name => "test1_2"}]],
|
349
|
+
[:suite, {:name => _test_case_name("TestCase2")},
|
350
|
+
[:test, {:name => "test2"}]]],
|
351
|
+
@test_case1.to_s, @test_case2.to_s)
|
263
352
|
end
|
264
353
|
|
265
354
|
def test_nil_pattern
|
@@ -297,7 +386,7 @@ EOT
|
|
297
386
|
[:test, {:name => "test4_2"}]],
|
298
387
|
[:suite, {:name => _test_case_name("SubTestCase6")},
|
299
388
|
[:test, {:name => "test6"}]]],
|
300
|
-
|
389
|
+
[:suite, {:name => @sub2_test_dir.basename.to_s},
|
301
390
|
[:suite, {:name => _test_case_name("Sub2TestCase8")},
|
302
391
|
[:test, {:name => "test8_1"}],
|
303
392
|
[:test, {:name => "test8_2"}]],
|
@@ -318,6 +407,11 @@ EOT
|
|
318
407
|
end
|
319
408
|
end
|
320
409
|
|
410
|
+
def ensure_clean_directory(directory)
|
411
|
+
directory.rmtree if directory.exist?
|
412
|
+
directory.mkpath
|
413
|
+
end
|
414
|
+
|
321
415
|
def keep_required_files
|
322
416
|
required_files = $".dup
|
323
417
|
yield
|
data/test/test-color-scheme.rb
CHANGED
@@ -1,8 +1,10 @@
|
|
1
1
|
class TestUnitColorScheme < Test::Unit::TestCase
|
2
2
|
def test_default
|
3
3
|
assert_equal({
|
4
|
-
"success" => color("green", :
|
5
|
-
|
4
|
+
"success" => color("green", :foreground => false) +
|
5
|
+
color("white", :bold => true),
|
6
|
+
"failure" => color("red", :foreground => false) +
|
7
|
+
color("white", :bold => true),
|
6
8
|
"pending" => color("magenta", :bold => true),
|
7
9
|
"omission" => color("blue", :bold => true),
|
8
10
|
"notification" => color("cyan", :bold => true),
|
data/test/test_assertions.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
#
|
1
3
|
# Author:: Nathaniel Talbott.
|
2
4
|
# Copyright:: Copyright (c) 2000-2002 Nathaniel Talbott. All rights reserved.
|
3
|
-
# Copyright (c) 2009 Kouhei Sutou.
|
5
|
+
# Copyright (c) 2009-2010 Kouhei Sutou. All rights reserved.
|
4
6
|
# License:: Ruby license.
|
5
7
|
|
6
8
|
require 'test/unit'
|
@@ -311,6 +313,21 @@ EOM
|
|
311
313
|
end
|
312
314
|
end
|
313
315
|
|
316
|
+
def test_assert_equal_with_different_encoding
|
317
|
+
utf8_string = "こんにちは"
|
318
|
+
unless utf8_string.respond_to?(:force_encoding)
|
319
|
+
omit("encoding test is for Ruby >= 1.9")
|
320
|
+
end
|
321
|
+
ascii_8bit_string = utf8_string.dup.force_encoding("ascii-8bit")
|
322
|
+
message = <<-EOM.chomp
|
323
|
+
<"こんにちは">("UTF-8") expected but was
|
324
|
+
<#{ascii_8bit_string.inspect}>("ASCII-8BIT").
|
325
|
+
EOM
|
326
|
+
check_fails(message) do
|
327
|
+
assert_equal(utf8_string, ascii_8bit_string)
|
328
|
+
end
|
329
|
+
end
|
330
|
+
|
314
331
|
def test_assert_raise_success
|
315
332
|
return_value = nil
|
316
333
|
check_nothing_fails(true) do
|
@@ -811,7 +828,12 @@ EOM
|
|
811
828
|
end
|
812
829
|
assert_in_delta(0.1, float_thing, 0.1)
|
813
830
|
}
|
814
|
-
check_fails("message.\n
|
831
|
+
check_fails("message.\n" +
|
832
|
+
"<0.5> expected but was\n" +
|
833
|
+
"<0.4> (tolerance <0.05>).\n" +
|
834
|
+
"\n" +
|
835
|
+
"Relation:\n" +
|
836
|
+
"<<0.4> < <0.5>-<0.05>(0.45) <= <0.5>+<0.05>(0.55)>") {
|
815
837
|
assert_in_delta(0.5, 0.4, 0.05, "message")
|
816
838
|
}
|
817
839
|
object = Object.new
|
metadata
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: test-unit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 2
|
7
|
+
- 0
|
8
|
+
- 8
|
9
|
+
version: 2.0.8
|
5
10
|
platform: ruby
|
6
11
|
authors:
|
7
12
|
- Kouhei Sutou
|
@@ -10,39 +15,23 @@ autorequire:
|
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
17
|
|
13
|
-
date: 2010-
|
18
|
+
date: 2010-06-02 00:00:00 +09:00
|
14
19
|
default_executable:
|
15
20
|
dependencies:
|
16
|
-
- !ruby/object:Gem::Dependency
|
17
|
-
name: rubyforge
|
18
|
-
type: :development
|
19
|
-
version_requirement:
|
20
|
-
version_requirements: !ruby/object:Gem::Requirement
|
21
|
-
requirements:
|
22
|
-
- - ">="
|
23
|
-
- !ruby/object:Gem::Version
|
24
|
-
version: 2.0.4
|
25
|
-
version:
|
26
|
-
- !ruby/object:Gem::Dependency
|
27
|
-
name: gemcutter
|
28
|
-
type: :development
|
29
|
-
version_requirement:
|
30
|
-
version_requirements: !ruby/object:Gem::Requirement
|
31
|
-
requirements:
|
32
|
-
- - ">="
|
33
|
-
- !ruby/object:Gem::Version
|
34
|
-
version: 0.5.0
|
35
|
-
version:
|
36
21
|
- !ruby/object:Gem::Dependency
|
37
22
|
name: hoe
|
38
|
-
|
39
|
-
|
40
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
41
25
|
requirements:
|
42
26
|
- - ">="
|
43
27
|
- !ruby/object:Gem::Version
|
44
|
-
|
45
|
-
|
28
|
+
segments:
|
29
|
+
- 2
|
30
|
+
- 4
|
31
|
+
- 0
|
32
|
+
version: 2.4.0
|
33
|
+
type: :development
|
34
|
+
version_requirements: *id001
|
46
35
|
description: |-
|
47
36
|
Test::Unit 2.x - Improved version of Test::Unit bundled in
|
48
37
|
Ruby 1.8.x.
|
@@ -158,30 +147,32 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
158
147
|
requirements:
|
159
148
|
- - ">="
|
160
149
|
- !ruby/object:Gem::Version
|
150
|
+
segments:
|
151
|
+
- 0
|
161
152
|
version: "0"
|
162
|
-
version:
|
163
153
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
164
154
|
requirements:
|
165
155
|
- - ">="
|
166
156
|
- !ruby/object:Gem::Version
|
157
|
+
segments:
|
158
|
+
- 0
|
167
159
|
version: "0"
|
168
|
-
version:
|
169
160
|
requirements: []
|
170
161
|
|
171
162
|
rubyforge_project: test-unit
|
172
|
-
rubygems_version: 1.3.
|
163
|
+
rubygems_version: 1.3.6
|
173
164
|
signing_key:
|
174
165
|
specification_version: 3
|
175
166
|
summary: Test::Unit 2.x - Improved version of Test::Unit bundled in Ruby 1.8.x
|
176
167
|
test_files:
|
177
168
|
- test/test_failure.rb
|
178
|
-
- test/collector/test_objectspace.rb
|
179
|
-
- test/collector/test_dir.rb
|
180
|
-
- test/test_testsuite.rb
|
181
|
-
- test/test_assertions.rb
|
182
|
-
- test/util/test_observable.rb
|
183
169
|
- test/util/test_procwrapper.rb
|
184
170
|
- test/util/test_backtracefilter.rb
|
171
|
+
- test/util/test_observable.rb
|
172
|
+
- test/test_testsuite.rb
|
173
|
+
- test/test_error.rb
|
185
174
|
- test/ui/test_testrunmediator.rb
|
175
|
+
- test/collector/test_dir.rb
|
176
|
+
- test/collector/test_objectspace.rb
|
186
177
|
- test/test_testresult.rb
|
187
|
-
- test/
|
178
|
+
- test/test_assertions.rb
|