Отличная работа Андрес Зорро!

Небольшое примечание, так как я только что потратил некоторое время на отладку и исправление этого:
Если ваш тестируемый интерфейс командной строки зависит от чего-то из process.env, использование метода createProcess напрямую, как показано выше, нарушит ваш код.

Вы должны убедиться, что текущий process.env также является частью среды в порожденном процессе:

  ...
  return spawn('node', args, {
    env: Object.assign(
      process.env,
      {
        NODE_ENV: 'test',
      },
      env
    )
  });
  ...

С текущим process.env, используемым в качестве базы, ваш CLI может получить доступ ко всем обычным данным env, которые он может ожидать.