parallelRun = async (mocha, options, fileCollectParams) => {
  const fileCollectionObj = collectFiles(fileCollectParams);

  if (fileCollectionObj.unmatchedFiles.length > 0) {
    return handleUnmatchedFiles(mocha, fileCollectionObj.unmatchedFiles);
  }

  debug(
    'executing %d test file(s) in parallel mode',
    fileCollectionObj.files.length
  );
  mocha.files = fileCollectionObj.files;

  // note that we DO NOT load any files here; this is handled by the worker
  return mocha.run(
    createExitHandler(options)
  );
}
Collect files and run tests (using `BufferedRunner`).

This is `async` for consistency.

@param {Mocha} mocha - Mocha instance
@param {Options} options - Command line options
@param {Object} fileCollectParams - Parameters that control test
  file collection. See `lib/cli/collect-files.js`.
@returns {Promise<BufferedRunner>}
@ignore
@private