Module: Test::Unit::Util::Output

Included in:
TestCase
Defined in:
lib/test/unit/util/output.rb

Instance Method Summary (collapse)

Instance Method Details

- (Object) capture_output

Returns output for standard output and standard error as string.

Example: capture_output do puts(“stdout”) warn(“stderr”) end # -> [“stdout\n”, “stderr\n”]



14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/test/unit/util/output.rb', line 14

def capture_output
  require 'stringio'

  output = StringIO.new
  error = StringIO.new
  stdout_save, stderr_save = $stdout, $stderr
  $stdout, $stderr = output, error
  begin
    yield
    [output.string, error.string]
  ensure
    $stdout, $stderr = stdout_save, stderr_save
  end
end