Я получаю сообщения «необработанное отклонение» в тестах мокко, но я не знаю, каков точный источник проблемы, поскольку это происходит асинхронно.
Я знаю, что могу добавить прослушиватель событий для глобального события unhandledRejection, например:
process.on('unhandledRejection', function(reason) {
console.error(reason);
process.exit(1);
});
, но это не очень помогает, поскольку трассировка выглядит следующим образом:
{ Error: ENOENT: no such file or directory, open '/tmp/testfile.json'
at Error (native)
cause:
{ Error: ENOENT: no such file or directory, open '/tmp/testfile.json'
at Error (native)
errno: -2,
code: 'ENOENT',
syscall: 'open',
path: '/tmp/testfile.json' },
isOperational: true,
errno: -2,
code: 'ENOENT',
syscall: 'open',
path: '/tmp/testfile.json' }
Проблема та же, что и у встроенного обработчика узла.Никакой обратной трассировки.
Очевидно, я не получаю правильную обратную трассировку, потому что отклонение происходит в собственном модуле fs.Если я попытаюсь выполнить только тест, где происходит эта трассировка, то этого не произойдет вообще.Вероятно, это из-за безудержного обещания, которое было сделано где-то «раньше».Указанный / tmp / path не существует нигде в тестовом коде или фактическом коде реализации.Testfile.json существует, но не по этому пути.
Я запускаю mocha 3.5.3 с узлом 6.5.0.
Поэтому возникает вопрос: как сузиться, чтобы найтипроблемный код?