If there is a reserved keyword in one of the files being covered, then esprima just throws an error stating that an unexpected token was encountered. This makes it very difficult to debug because we aren't given the name of the keyword that was found, and aren't given the name of the offending file. I propose extending the verbose logging to see a stack trace of filenames that were processed.
I'm setting up istanbul/mocha for testing and coverage on a React/Express/NodeJS app, and want to run coverage on all files excluding all react source files.
istanbul cover ./node_modules/mocha/bin/_mocha -- --recursive --require ./test/bootstrap.js
verbose: true
instrumentation:
excludes: ['**/react/**']
include-all-sources: true
es-modules: true
File name is available here, but not logged anywhere, or passed to esprima.
program = ESP.parse(code, {
loc: true,
range: true,
tokens: this.opts.preserveComments,
comment: true,
sourceType: this.opts.esModules ? 'module' : 'script'
});
C:\dev\git[myproject]\node_modules\istanbul\node_modules\esprima\esprima.js:5703
throw e;
^
Error: Line 3: Unexpected token
at constructError (C:\dev\git[myproject]\node_modules\istanbul\node_modules\esprima\esprima.js:2406:21)
at createError (C:\dev\git[myproject]\node_modules\istanbul\node_modules\esprima\esprima.js:2425:17)
at unexpectedTokenError (C:\dev\git[myproject]\node_modules\istanbul\node_modules\esprima\esprima.js:2499:13)
at tolerateUnexpectedToken (C:\dev\git[myproject]\node_modules\istanbul\node_modules\esprima\esprima.js:2509:21)
at parseStatementListItem (C:\dev\git[myproject]\node_modules\istanbul\node_modules\esprima\esprima.js:3968:21)
at parseFunctionSourceElements (C:\dev\git[myproject]\node_modules\istanbul\node_modules\esprima\esprima.js:4869:23)
at parseFunctionExpression (C:\dev\git[myproject]\node_modules\istanbul\node_modules\esprima\esprima.js:5074:16)
at parsePrimaryExpression (C:\dev\git[myproject]\node_modules\istanbul\node_modules\esprima\esprima.js:3273:24)
at inheritCoverGrammar (C:\dev\git[myproject]\node_modules\istanbul\node_modules\esprima\esprima.js:2681:18)
at parseLeftHandSideExpressionAllowCall (C:\dev\git[myproject]\node_modules\istanbul\node_modules\esprima\esprima.js:3414:20)
at inheritCoverGrammar (C:\dev\git[myproject]\node_modules\istanbul\node_modules\esprima\esprima.js:2681:18)
at parsePostfixExpression (C:\dev\git[myproject]\node_modules\istanbul\node_modules\esprima\esprima.js:3490:16)
at parseUnaryExpression (C:\dev\git[myproject]\node_modules\istanbul\node_modules\esprima\esprima.js:3550:20)
at inheritCoverGrammar (C:\dev\git[myproject]\node_modules\istanbul\node_modules\esprima\esprima.js:2681:18)
at parseBinaryExpression (C:\dev\git[myproject]\node_modules\istanbul\node_modules\esprima\esprima.js:3639:16)
at inheritCoverGrammar (C:\dev\git[myproject]\node_modules\istanbul\node_modules\esprima\esprima.js:2681:18)
at parseConditionalExpression (C:\dev\git[myproject]\node_modules\istanbul\node_modules\esprima\esprima.js:3696:16)
at parseAssignmentExpression (C:\dev\git[myproject]\node_modules\istanbul\node_modules\esprima\esprima.js:3893:16)
at inheritCoverGrammar (C:\dev\git[myproject]\node_modules\istanbul\node_modules\esprima\esprima.js:2681:18)
at parseGroupExpression (C:\dev\git[myproject]\node_modules\istanbul\node_modules\esprima\esprima.js:3162:16)
at inheritCoverGrammar (C:\dev\git[myproject]\node_modules\istanbul\node_modules\esprima\esprima.js:2681:18)
at parsePrimaryExpression (C:\dev\git[myproject]\node_modules\istanbul\node_modules\esprima\esprima.js:3239:20)
at inheritCoverGrammar (C:\dev\git[myproject]\node_modules\istanbul\node_modules\esprima\esprima.js:2681:18)
at parseLeftHandSideExpressionAllowCall (C:\dev\git[myproject]\node_modules\istanbul\node_modules\esprima\esprima.js:3414:20)
at inheritCoverGrammar (C:\dev\git[myproject]\node_modules\istanbul\node_modules\esprima\esprima.js:2681:18)
at parsePostfixExpression (C:\dev\git[myproject]\node_modules\istanbul\node_modules\esprima\esprima.js:3490:16)
at parseUnaryExpression (C:\dev\git[myproject]\node_modules\istanbul\node_modules\esprima\esprima.js:3550:20)
at inheritCoverGrammar (C:\dev\git[myproject]\node_modules\istanbul\node_modules\esprima\esprima.js:2681:18)
at parseBinaryExpression (C:\dev\git[myproject]\node_modules\istanbul\node_modules\esprima\esprima.js:3639:16)
at inheritCoverGrammar (C:\dev\git[myproject]\node_modules\istanbul\node_modules\esprima\esprima.js:2681:18)
at parseConditionalExpression (C:\dev\git[myproject]\node_modules\istanbul\node_modules\esprima\esprima.js:3696:16)
at parseAssignmentExpression (C:\dev\git[myproject]\node_modules\istanbul\node_modules\esprima\esprima.js:3893:16)
at isolateCoverGrammar (C:\dev\git[myproject]\node_modules\istanbul\node_modules\esprima\esprima.js:2663:18)
at parseExpression (C:\dev\git[myproject]\node_modules\istanbul\node_modules\esprima\esprima.js:3942:16)
at parseExpressionStatement (C:\dev\git[myproject]\node_modules\istanbul\node_modules\esprima\esprima.js:4222:20)
at parseStatement (C:\dev\git[myproject]\node_modules\istanbul\node_modules\esprima\esprima.js:4760:24)
at parseStatementListItem (C:\dev\git[myproject]\node_modules\istanbul\node_modules\esprima\esprima.js:3989:16)
at parseScriptBody (C:\dev\git[myproject]\node_modules\istanbul\node_modules\esprima\esprima.js:5490:25)
at parseProgram (C:\dev\git[myproject]\node_modules\istanbul\node_modules\esprima\esprima.js:5506:16)
at Object.parse (C:\dev\git[myproject]\node_modules\istanbul\node_modules\esprima\esprima.js:5690:23)
at Object.Instrumenter.instrumentSync (C:\dev\git[myproject]\node_modules\istanbul\lib\instrumenter.js:458:27)
at C:\dev\git[myproject]\node_modules\istanbul\lib\command\common\run-with-cover.js:224:33
at Array.forEach (native)
at process.
at process.g (events.js:260:16)
at emitOne (events.js:77:13)
at process.emit (events.js:169:7)
at process.exit (node.js:749:17)
at done (C:\dev\git[myproject]\node_modules\mocha\bin_mocha:417:32)
at afterWrite (_stream_writable.js:346:3)
at doNTCallbackMany (node.js:463:18)
at process._tickCallback (node.js:361:17)
npm ERR! Test failed. See above for more details.
We are also bumping into this. I guess a dep has changed, worked before clearing node_modules
Hey guys, is this issue resolved?
I too get an unexpected token error (failed to parse file) error when instrumenting js files, since the failed files start with an "import" keyword.
Help?
I have the same issue... Still not resolved?
Error: Line 2813: Unexpected token ILLEGAL
at ErrorHandler.constructError (/home/ubuntu/.nvm/versions/node/v6.11.2/lib/node_modules/lsxc/node_modules/esprima/dist/esprima.js:3396:22)
at ErrorHandler.createError (/home/ubuntu/.nvm/versions/node/v6.11.2/lib/node_modules/lsxc/node_modules/esprima/dist/esprima.js:3414:27)
at ErrorHandler.throwError (/home/ubuntu/.nvm/versions/node/v6.11.2/lib/node_modules/lsxc/node_modules/esprima/dist/esprima.js:3422:21)
at Scanner.throwUnexpectedToken (/home/ubuntu/.nvm/versions/node/v6.11.2/lib/node_modules/lsxc/node_modules/esprima/dist/esprima.js:3505:28)
at Scanner.scanStringLiteral (/home/ubuntu/.nvm/versions/node/v6.11.2/lib/node_modules/lsxc/node_modules/esprima/dist/esprima.js:4292:19)
at Scanner.lex (/home/ubuntu/.nvm/versions/node/v6.11.2/lib/node_modules/lsxc/node_modules/esprima/dist/esprima.js:4604:26)
at Parser.nextToken (/home/ubuntu/.nvm/versions/node/v6.11.2/lib/node_modules/lsxc/node_modules/esprima/dist/esprima.js:634:30)
at Parser.expect (/home/ubuntu/.nvm/versions/node/v6.11.2/lib/node_modules/lsxc/node_modules/esprima/dist/esprima.js:714:27)
at Parser.parseLeftHandSideExpressionAllowCall (/home/ubuntu/.nvm/versions/node/v6.11.2/lib/node_modules/lsxc/node_modules/esprima/dist/esprima.js:1407:23)
at Parser.inheritCoverGrammar (/home/ubuntu/.nvm/versions/node/v6.11.2/lib/node_modules/lsxc/node_modules/esprima/dist/esprima.js:833:37)
Hello,
I am also trying to run unit tests of custom polymer elements using wct instanbul; finding the similar errors in console. Has this been solved yet?
has this been solved yet?
Most helpful comment
has this been solved yet?