module Test::Unit::Util::Output

Public Instance Methods

capture_output() { || ... } click to toggle source

Returns output for standard output and standard error as string.

Example:

capture_output do
  puts("stdout")
  warn("stderr")
end # -> ["stdout\n", "stderr\n"]
# 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