Tener una función simple que estoy tratando de probar unitariamente:
const {spawn} = require('child_process'); function exec (command, args) { return spawn(command, args, { stdio: `inherit` }); } Dado que esto está usando la inherit , echo.stdout.on no funcionará, aunque supongo que con el stdio compartido con el proceso principal, y el proceso principal siendo presumiblemente el script en ejecución, podría simplemente anular process.stdout.write (o console.log ), pero esto no funcionó (tampoco sobrescribió global.process.stdout.write ). ¿Cómo puedo espiar write usando el exec anterior si el siguiente no funciona?
let str = ''; const {write} = process.stdout; process.stdout.write = (s) => { str += s; // Does not run }; const echo = exec('echo', ['hello', 'world']); echo.on('exit', () => { process.stdout.write = write; throw (new Error('Result ' + str)); }); setTimeout(() => { echo.kill(); }, 1000);