How to make Mocha display correct line numbers in

2019-04-26 19:02发布

问题:

I'm using Mocha for my NodeJS tests, and when a test fails due to an Error thrown by my source code (for example "TypeError: Cannot read property 'prop' of null"), the line numbers in the displayed stacktrace are wrong (they don't match with the original source file, but are far bigger).

  1) MyApp should do something:
     TypeError: Cannot read property 'prop' of null
      at MyApp.<anonymous> (/path/to/my-project/lib/my-project.js:515:93)
      at MyApp.build (/path/to/my-project/lib/my-project.js:774:16)
      at Context.<anonymous> (/path/to/my-project/test/test.js:62:67)
      at Test.Runnable.run (/path/to/my-project/node_modules/mocha/lib/runnable.js:216:15)
      at Runner.runTest (/path/to/my-project/node_modules/mocha/lib/runner.js:373:10)
      at /path/to/my-project/node_modules/mocha/lib/runner.js:451:12
      at next (/path/to/my-project/node_modules/mocha/lib/runner.js:298:14)
      at /path/to/my-project/node_modules/mocha/lib/runner.js:308:7
      at next (/path/to/my-project/node_modules/mocha/lib/runner.js:246:23)
      at Object._onImmediate (/path/to/my-project/node_modules/mocha/lib/runner.js:275:5)
      at processImmediate [as _immediateCallback] (timers.js:330:15)

(Here my-project.js only has 279 lines !)

Is there a way to tell Mocha to display them correctly?

回答1:

This happens when the code is instrumented by a coverage tool (e.g. blanket, istanbul, etc). Double-check to make sure you aren't loading it in your normal tests by mistake.