minitest 3.4.0 → 3.5.0
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.tar.gz.sig +0 -0
- data/History.txt +6 -0
- data/lib/minitest/unit.rb +45 -1
- data/test/minitest/test_minitest_unit.rb +18 -0
- metadata +4 -4
- metadata.gz.sig +0 -0
data.tar.gz.sig
CHANGED
Binary file
|
data/History.txt
CHANGED
data/lib/minitest/unit.rb
CHANGED
@@ -307,6 +307,8 @@ module MiniTest
|
|
307
307
|
# "" if you require it to be silent. Pass in a regexp if you want
|
308
308
|
# to pattern match.
|
309
309
|
#
|
310
|
+
# NOTE: this uses #capture_io, not #capture_subprocess_io.
|
311
|
+
#
|
310
312
|
# See also: #assert_silent
|
311
313
|
|
312
314
|
def assert_output stdout = nil, stderr = nil
|
@@ -439,10 +441,16 @@ module MiniTest
|
|
439
441
|
# Captures $stdout and $stderr into strings:
|
440
442
|
#
|
441
443
|
# out, err = capture_io do
|
444
|
+
# puts "Some info"
|
442
445
|
# warn "You did a bad thing"
|
443
446
|
# end
|
444
447
|
#
|
448
|
+
# assert_match %r%info%, out
|
445
449
|
# assert_match %r%bad%, err
|
450
|
+
#
|
451
|
+
# NOTE: For efficiency, this method uses StringIO and does not
|
452
|
+
# capture IO for subprocesses. Use #capture_subprocess_io for
|
453
|
+
# that.
|
446
454
|
|
447
455
|
def capture_io
|
448
456
|
require 'stringio'
|
@@ -459,6 +467,42 @@ module MiniTest
|
|
459
467
|
$stderr = orig_stderr
|
460
468
|
end
|
461
469
|
|
470
|
+
##
|
471
|
+
# Captures $stdout and $stderr into strings, using Tempfile to
|
472
|
+
# ensure that subprocess IO is captured as well.
|
473
|
+
#
|
474
|
+
# out, err = capture_subprocess_io do
|
475
|
+
# system "echo Some info"
|
476
|
+
# system "echo You did a bad thing 1>&2"
|
477
|
+
# end
|
478
|
+
#
|
479
|
+
# assert_match %r%info%, out
|
480
|
+
# assert_match %r%bad%, err
|
481
|
+
#
|
482
|
+
# NOTE: This method is approximately 10x slower than #capture_io so
|
483
|
+
# only use it when you need to test the output of a subprocess.
|
484
|
+
|
485
|
+
def capture_subprocess_io
|
486
|
+
require 'tempfile'
|
487
|
+
|
488
|
+
captured_stdout, captured_stderr = Tempfile.new("out"), Tempfile.new("err")
|
489
|
+
orig_stdout, orig_stderr = $stdout.dup, $stderr.dup
|
490
|
+
$stdout.reopen captured_stdout
|
491
|
+
$stderr.reopen captured_stderr
|
492
|
+
|
493
|
+
yield
|
494
|
+
|
495
|
+
$stdout.rewind
|
496
|
+
$stderr.rewind
|
497
|
+
|
498
|
+
return captured_stdout.read, captured_stderr.read
|
499
|
+
ensure
|
500
|
+
captured_stdout.unlink
|
501
|
+
captured_stderr.unlink
|
502
|
+
$stdout.reopen orig_stdout
|
503
|
+
$stderr.reopen orig_stderr
|
504
|
+
end
|
505
|
+
|
462
506
|
##
|
463
507
|
# Returns details for exception +e+
|
464
508
|
|
@@ -652,7 +696,7 @@ module MiniTest
|
|
652
696
|
end
|
653
697
|
|
654
698
|
class Unit # :nodoc:
|
655
|
-
VERSION = "3.
|
699
|
+
VERSION = "3.5.0" # :nodoc:
|
656
700
|
|
657
701
|
attr_accessor :report, :failures, :errors, :skips # :nodoc:
|
658
702
|
attr_accessor :test_count, :assertion_count # :nodoc:
|
@@ -1174,6 +1174,7 @@ class TestMiniTestUnitTestCase < MiniTest::Unit::TestCase
|
|
1174
1174
|
|
1175
1175
|
orig_verbose = $VERBOSE
|
1176
1176
|
$VERBOSE = false
|
1177
|
+
|
1177
1178
|
out, err = capture_io do
|
1178
1179
|
puts 'hi'
|
1179
1180
|
warn 'bye!'
|
@@ -1185,6 +1186,23 @@ class TestMiniTestUnitTestCase < MiniTest::Unit::TestCase
|
|
1185
1186
|
$VERBOSE = orig_verbose
|
1186
1187
|
end
|
1187
1188
|
|
1189
|
+
def test_capture_subprocess_io
|
1190
|
+
@assertion_count = 0
|
1191
|
+
|
1192
|
+
orig_verbose = $VERBOSE
|
1193
|
+
$VERBOSE = false
|
1194
|
+
|
1195
|
+
out, err = capture_subprocess_io do
|
1196
|
+
system("echo 'hi'")
|
1197
|
+
system("echo 'bye!' 1>&2")
|
1198
|
+
end
|
1199
|
+
|
1200
|
+
assert_equal "hi\n", out
|
1201
|
+
assert_equal "bye!\n", err
|
1202
|
+
ensure
|
1203
|
+
$VERBOSE = orig_verbose
|
1204
|
+
end
|
1205
|
+
|
1188
1206
|
def test_class_asserts_match_refutes
|
1189
1207
|
@assertion_count = 0
|
1190
1208
|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: minitest
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 19
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 3
|
8
|
-
-
|
8
|
+
- 5
|
9
9
|
- 0
|
10
|
-
version: 3.
|
10
|
+
version: 3.5.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Ryan Davis
|
@@ -36,7 +36,7 @@ cert_chain:
|
|
36
36
|
FBHgymkyj/AOSqKRIpXPhjC6
|
37
37
|
-----END CERTIFICATE-----
|
38
38
|
|
39
|
-
date: 2012-09-
|
39
|
+
date: 2012-09-21 00:00:00 Z
|
40
40
|
dependencies:
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rdoc
|
metadata.gz.sig
CHANGED
Binary file
|