async function execute (command, options = {}, hook) {
  options.cwd ??= path.join(__dirname, '..', 'fixtures');

  // Inherit no environment by default
  // Without this, tests may fail from inheriting FORCE_COLOR=1
  options.env = options.env || {};

  // Avoid Windows-specific issue where otherwise 'foo/bar' is seen as a directory
  // named "'foo/" (including the single quote).
  options.windowsVerbatimArguments = true;

  let cmd = command[0];
  const args = command.slice(1);
  if (cmd === 'qunit') {
    cmd = path.join(__dirname, '../../../bin/qunit.js');
    args.unshift(cmd);
    cmd = process.execPath;
  }
  if (cmd === 'node') {
    cmd = process.execPath;
  }

  const spawned = cp.spawn(cmd, args, options);

  if (hook) {
    hook(spawned);
  }

  return await getProcessResult(spawned);
}
Executes the provided command from within the fixtures directory.

The `options` and `hook` parameters are used by test/cli/watch.js to
control the stdio stream.

@param {Array} command
@param {Object} [options]
@param {Array} [options.stdio]
@param {Object} [options.env]
@param {Function} [hook]