对于使用 jest 的 Angular v12 项目,我刚刚将 jest 更新到版本 28。但是现在,我收到以下错误
\nFAIL src/app/components/update-input/update-input.directive.spec.ts\n\xe2\x97\x8f Test suite failed to run\n\n TypeError: Cannot read property 'html' of undefined\n\n at new JSDOMEnvironment (node_modules/jest-environment-jsdom/build/index.js:72:44)\nRun Code Online (Sandbox Code Playgroud)\n这是我的 tsconfig.spec.json
\n{\n "extends": "./tsconfig.json",\n "compilerOptions": {\n "outDir": "./out-tsc/spec",\n "types": [\n "jest", \n "node",\n "Chrome"\n ],\n "esModuleInterop": true,\n "emitDecoratorMetadata": true,\n "allowSyntheticDefaultImports": true,\n "moduleResolution": "Node",\n "module": "es2020",\n "files": ["src/test.ts", "src/polyfills.ts"],\n "include": ["src/**/*.spec.ts", "src/**/*.d.ts"]\n },\n}\nRun Code Online (Sandbox Code Playgroud)\n和 jest.config.js
\nconst { pathsToModuleNameMapper } = require("ts-jest/utils");\nconst { compilerOptions } = require("./tsconfig");\n\nmodule.exports = {\n preset: "jest-preset-angular",\n // preset: 'jest-preset-angular/presets/defaults-esm',\n roots: ["<rootDir>/src/"],\n testMatch: ["**/+(*.)+(spec).+(ts)"],\n setupFilesAfterEnv: ["<rootDir>/src/test.ts"],\n collectCoverage: true,\n coverageReporters: ["html"],\n coverageDirectory: "coverage/app",\n moduleNameMapper: pathsToModuleNameMapper(compilerOptions.paths || {}, {\n prefix: "<rootDir>/",\n }),\n transform: {\n '^.+\\\\.(ts|js|html|svg)$': 'ts-jest',\n },\n moduleFileExtensions: ['ts', 'js', 'html', 'svg'],\n // extensionsToTreatAsEsm: ['.ts'],\n // globals: {\n // 'ts-jest': {\n // tsconfig: '<rootDir>/tsconfig.spec.json',\n // stringifyContentPathRegex: '\\\\.html$',\n // useESM: true,\n // },\n // }\n};\nRun Code Online (Sandbox Code Playgroud)\n当我向我的项目添加一个 web-worker 时,我的测试出现了问题,该项目使用import.meta.url
this.worker = new Worker(new URL('../webworkers/search.worker', import.meta.url), { type: 'module' });\nRun Code Online (Sandbox Code Playgroud)\n有什么建议以及如何解决这个问题吗?
\nJea*_*eau 13
我遇到了同样的错误,并在这里找到了解决方案:在此处输入链接描述
yarn add --dev jest-environment-jsdom
Run Code Online (Sandbox Code Playgroud)
小智 10
我遇到了同样的问题,并注意到 jest-environment-jsdom 版本为 27。我安装了 v28 以匹配 jest 版本,并且它不再出现此错误。
我的测试仍然失败,所以 YMMV!
| 归档时间: |
|
| 查看次数: |
16131 次 |
| 最近记录: |