我试图向Jest / Istanbul提供忽略提示,但它们被完全忽略 - 覆盖范围不变。例如:
/* istanbul ignore if */
if (process.env.NODE_ENV === 'development') {
const fromStateStr = JSON.stringify(fromState);
const toStateStr = JSON.stringify(toState);
console.log(
`RouterStore.transition(${fromStateStr}, ${toStateStr})`
);
}
我还尝试了/* istanbul ignore next */
个别行,但没有变化。我错过了一些设置吗?这是我的Jest配置:
"jest": {
"transform": {
".(ts|tsx)": "<rootDir>/node_modules/ts-jest/preprocessor.js"
},
"testRegex": "(/__tests__/.*|\\.(test|spec))\\.(ts|tsx|js)$",
"moduleFileExtensions": [
"ts",
"tsx",
"js"
],
"setupFiles": [
"./test/test-shim.ts",
"./test/test-setup.ts"
],
"coveragePathIgnorePatterns": [
"/node_modules/",
"/test/"
],
"coverageThreshold": {
"global": {
"branches": 90,
"functions": 95,
"lines": 95,
"statements": 95
}
},
"collectCoverage": true,
"mapCoverage": true
}
答案 0 :(得分:0)
原因是TypeScript编译器正在删除所有注释,包括Istanbul提示。因此,测试忽略了所有提示。不得不将"removeComments": false
添加到tsconfig.json以使其工作。
P.S。感谢Lucian Lature指出这一点。