mocha nyc 和 source maps
mocha nyc and source maps
所以。我想弄清楚为什么这不起作用。
我正在 src
和 tests
目录中的文件中编写源代码和测试 TypeScript 代码。这些是 *.ts
和 *.spec.ts
文件。
我使用 npx tsc
将源文件和测试文件都转译到目录 build
。所以这个目录现在包含 *.js.
、*.spec.js
、*.js.map
和 *.spec.js.map
文件类型。
我现在如何设置 mocha 和 nyc 来使用它?
我有下面这一套。
.nycrc.json
{
"extends": "@istanbuljs/nyc-config-typescript",
"all": true,
"branches": 0,
"lines": 0,
"functions": 0,
"statements": 0,
"check-coverage": true,
"exclude": [".ignore", "coverage"],
"report-dir": "./coverage/",
"cache": false,
"source-map": true,
"produce-source-map": true
}
tsconfig.json:
{
"compilerOptions": {
"allowJs": true,
"noImplicitAny": false,
"strictNullChecks": true,
"noImplicitThis": true,
"alwaysStrict": true,
"module": "commonjs",
"target": "es2016",
"lib": ["es2016"],
"moduleResolution": "node",
"types": ["mocha", "node"],
"typeRoots": ["node_modules/@types"],
"sourceMap": true,
"outDir": "./build/",
"skipLibCheck": true,
"removeComments": false
},
"include": ["./**/*.ts", "./**/*.js"]
}
错误:
karl@karl-Dell-Precision-M3800:~/dev/escd$ NODE_ENV=test npx nyc --reporter=html --reporter=text mocha "./build/tests/**/*.js"
mappedCoverage.addStatement is not a function
但是,如果我在 .nycrc.json
文件中将 all
设置为 false
,那么它不会抱怨。怎么了?
我不想使用 ts-node
或类似的东西,我已经转译了文件。
https://github.com/istanbuljs/nyc#source-map-support-for-pre-instrumented-codebases
我不得不删除 "extends": "@istanbuljs/nyc-config-typescript",
并添加 "exclude-after-remap": false,
。
所以。我想弄清楚为什么这不起作用。
我正在 src
和 tests
目录中的文件中编写源代码和测试 TypeScript 代码。这些是 *.ts
和 *.spec.ts
文件。
我使用 npx tsc
将源文件和测试文件都转译到目录 build
。所以这个目录现在包含 *.js.
、*.spec.js
、*.js.map
和 *.spec.js.map
文件类型。
我现在如何设置 mocha 和 nyc 来使用它?
我有下面这一套。
.nycrc.json
{
"extends": "@istanbuljs/nyc-config-typescript",
"all": true,
"branches": 0,
"lines": 0,
"functions": 0,
"statements": 0,
"check-coverage": true,
"exclude": [".ignore", "coverage"],
"report-dir": "./coverage/",
"cache": false,
"source-map": true,
"produce-source-map": true
}
tsconfig.json:
{
"compilerOptions": {
"allowJs": true,
"noImplicitAny": false,
"strictNullChecks": true,
"noImplicitThis": true,
"alwaysStrict": true,
"module": "commonjs",
"target": "es2016",
"lib": ["es2016"],
"moduleResolution": "node",
"types": ["mocha", "node"],
"typeRoots": ["node_modules/@types"],
"sourceMap": true,
"outDir": "./build/",
"skipLibCheck": true,
"removeComments": false
},
"include": ["./**/*.ts", "./**/*.js"]
}
错误:
karl@karl-Dell-Precision-M3800:~/dev/escd$ NODE_ENV=test npx nyc --reporter=html --reporter=text mocha "./build/tests/**/*.js"
mappedCoverage.addStatement is not a function
但是,如果我在 .nycrc.json
文件中将 all
设置为 false
,那么它不会抱怨。怎么了?
我不想使用 ts-node
或类似的东西,我已经转译了文件。
https://github.com/istanbuljs/nyc#source-map-support-for-pre-instrumented-codebases
我不得不删除 "extends": "@istanbuljs/nyc-config-typescript",
并添加 "exclude-after-remap": false,
。