function runMocha(fixturePath, args, done, opts = {}) {
  if (typeof args === 'function') {
    opts = done;
    done = args;
    args = [];
  }

  return invokeMocha(
    [...args, resolveFixturePath(fixturePath)],
    (err, res) => {
      if (err) {
        return done(err);
      }

      done(null, getSummary(res));
    },
    opts
  );
}
Invokes the mocha binary for the given fixture with color output disabled.
Accepts an array of additional command line args to pass. The callback is
invoked with a summary of the run, in addition to its output. The summary
includes the number of passing, pending, and failing tests, as well as the
exit code. Useful for testing different reporters.

By default, `STDERR` is ignored. Pass `{stdio: 'pipe'}` as `opts` if you
want it.
Example response:
{
  pending: 0,
  passing: 0,
  failing: 1,
  code:    1,
  output:  '...'
}

@param {string} fixturePath - Path to fixture .js file
@param {string[]|SummarizedResultCallback} args - Extra args to mocha executable
@param {SummarizedResultCallback|Object} done - Callback
@param {Object} [opts] - Options for `spawn()`
@returns {ChildProcess} Subprocess process