模块 Test::Unit::Util::Output

公共实例方法

capture_output() { || ... } 点击切换源代码

以字符串形式返回标准输出和标准错误的输出。

示例

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