方法
实例公共方法
run_in_isolation(&blk) 链接
来源: 显示 | 在 GitHub 上
# File activesupport/lib/active_support/testing/isolation.rb, line 36 def run_in_isolation(&blk) IO.pipe do |read, write| read.binmode write.binmode pid = fork do read.close yield begin if error? failures.map! { |e| begin Marshal.dump e e rescue TypeError ex = Exception.new e.message ex.set_backtrace e.backtrace Minitest::UnexpectedError.new ex end } end test_result = defined?(Minitest::Result) ? Minitest::Result.from(self) : dup result = Marshal.dump(test_result) end write.puts [result].pack("m") exit!(0) end write.close result = read.read _, status = Process.wait2(pid) return status, result.unpack1("m") end end