function done (failures) {
    if (reporter.done) {
      reporter.done(failures, fn);
    } else {
      fn && fn(failures);
    }
  }
Run tests and invoke `fn()` when complete.

Note that `loadFiles` relies on Node's `require` to execute
the test interface functions and will be subject to the
cache - if the files are already in the `require` cache,
they will effectively be skipped. Therefore, to run tests
multiple times or to run tests in files that are already
in the `require` cache, make sure to clear them from the
cache first in whichever manner best suits your needs.

@api public
@param {Function} fn
@return {Runner}