scheduleError (errorMessage) {
    // We don't want to interfere with any running test.
    // Verify that no test is running before reporting the error.
    if (this.capturedBrowsers.areAllReady()) {
      log.warn(errorMessage)
      const errorResult = {
        success: 0,
        failed: 0,
        skipped: 0,
        error: errorMessage,
        exitCode: 1
      }
      const noBrowsersStartedTests = []
      this.emitter.emit('run_start', noBrowsersStartedTests) // A run cannot complete without being started
      this.emitter.emit('run_complete', noBrowsersStartedTests, errorResult)
      return true
    } else {
      this.errorsScheduled.push(errorMessage)
      return false
    }
  }
Schedule an error to be reported
@param {string} errorMessage
@returns {boolean} a boolean indicating whether or not the error was handled synchronously