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

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

Instance Method Summary collapse

Instance Method Details

#capture_outputObject

Returns output for standard output and standard error as string.

Example:

capture_output do
  puts("stdout")
  warn("stderr")
end # -> ["stdout\n", "stderr\n"]


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

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