@@ -16,7 +16,6 @@ var Suite = require('./suite');
16
16
var esmUtils = require ( './nodejs/esm-utils' ) ;
17
17
var createStatsCollector = require ( './stats-collector' ) ;
18
18
const {
19
- warn,
20
19
createInvalidReporterError,
21
20
createInvalidInterfaceError,
22
21
createMochaInstanceAlreadyDisposedError,
@@ -335,35 +334,26 @@ Mocha.prototype.reporter = function (reporterName, reporterOptions) {
335
334
}
336
335
// Try to load reporters from process.cwd() and node_modules
337
336
if ( ! reporter ) {
337
+ let foundReporter ;
338
338
try {
339
- reporter = require ( reporterName ) ;
339
+ foundReporter = require . resolve ( reporterName ) ;
340
+ reporter = require ( foundReporter ) ;
340
341
} catch ( err ) {
341
- if ( err . code === 'MODULE_NOT_FOUND' ) {
342
- // Try to load reporters from a path (absolute or relative)
343
- try {
344
- reporter = require ( path . resolve ( utils . cwd ( ) , reporterName ) ) ;
345
- } catch ( _err ) {
346
- _err . code === 'MODULE_NOT_FOUND'
347
- ? warn ( `'${ reporterName } ' reporter not found` )
348
- : warn (
349
- `'${ reporterName } ' reporter blew up with error:\n ${ err . stack } `
350
- ) ;
351
- }
352
- } else {
353
- warn ( `'${ reporterName } ' reporter blew up with error:\n ${ err . stack } ` ) ;
342
+ if ( foundReporter ) {
343
+ throw createInvalidReporterError ( err . message , foundReporter ) ;
344
+ }
345
+ // Try to load reporters from a cwd-relative path
346
+ try {
347
+ reporter = require ( path . resolve ( reporterName ) ) ;
348
+ } catch ( e ) {
349
+ throw createInvalidReporterError ( e . message , reporterName ) ;
354
350
}
355
351
}
356
352
}
357
- if ( ! reporter ) {
358
- throw createInvalidReporterError (
359
- `invalid reporter '${ reporterName } '` ,
360
- reporterName
361
- ) ;
362
- }
363
353
this . _reporter = reporter ;
364
354
}
365
355
this . options . reporterOption = reporterOptions ;
366
- // alias option name is used in public reporters xunit/tap/progress
356
+ // alias option name is used in built-in reporters xunit/tap/progress
367
357
this . options . reporterOptions = reporterOptions ;
368
358
return this ;
369
359
} ;
0 commit comments