var spawn = require('child_process').spawn
  , exitCode = 0
  ;

var tests = [
    'test-body.js'
  , 'test-cookie.js'
  , 'test-cookiejar.js'
  , 'test-defaults.js'
  , 'test-errors.js'
  , 'test-form.js'
  , 'test-follow-all-303.js'
  , 'test-follow-all.js'
  , 'test-headers.js'
  , 'test-httpModule.js'
  , 'test-https.js'
  , 'test-https-strict.js'
  , 'test-oauth.js'
  , 'test-params.js'
  , 'test-pipes.js'
  , 'test-pool.js'
  , 'test-protocol-changing-redirect.js'
  , 'test-proxy.js'
  , 'test-piped-redirect.js'
  , 'test-qs.js'
  , 'test-redirect.js'
  , 'test-timeout.js'
  , 'test-toJSON.js'
  , 'test-tunnel.js'
]

var next = function () {
  if (tests.length === 0) process.exit(exitCode);

  var file = tests.shift()
  console.log(file)
  var proc = spawn('node', [ 'tests/' + file ])
  proc.stdout.pipe(process.stdout)
  proc.stderr.pipe(process.stderr)
  proc.on('exit', function (code) {
  	exitCode += code || 0
  	next()
  })
}
next()

@@ -53,16 +53,36 @@
 ode = 0%0A
+  , timeout = 10000%0A
   ;%0A%0Avar
@@ -815,16 +815,177 @@
 file %5D)%0A
+%0A  var killed = false%0A  var t = setTimeout(function () %7B%0A    proc.kill()%0A    exitCode += 1%0A    console.error(file + ' timeout')%0A    killed = true%0A  %7D, timeout)%0A%0A
   proc.s
@@ -1084,17 +1084,75 @@
 de) %7B%0A  
-%09
+  if (code && !killed) console.error(file + ' failed')%0A    
 exitCode
@@ -1171,9 +1171,30 @@
 0%0A  
-%09
+  clearTimeout(t)%0A    
 next

Add more reporting to tests