Ric*_*cha 3 unit-testing jasmine typescript karma-runner angular
我有一个 angular 8,它使用 karma/jasmine 来运行一些单元测试。我可以通过执行以下命令来运行测试,ng test但出现以下错误:
找不到 ./src/polyfills.ts 模块中的错误:错误:无法解析 'C:\PrjNET\Elevation3\FW\4.00\Project\Framework\Development\Client\ElevationJS 中的 'zone.js/dist/zone' \shell\src' 解析 'C:\PrjNET\Elevation3\FW\4.00\Project\Framework\Development\Client\ElevationJS\shell\src' 中的 'zone.js/dist/zone'
有谁知道怎么解决?
zone-testing仅存在于0.8.19. 尝试安装最新版本。使用:
npm i zone.js
Run Code Online (Sandbox Code Playgroud)
上面的命令适用于我的情况。
我用这个命令在我的项目中修复了它:
npm install zone.js@0.11.3 --save
Run Code Online (Sandbox Code Playgroud)
我使用zone.js@0.8.29.
改变
zone.js/dist/zone
Run Code Online (Sandbox Code Playgroud)
到
zone.js
Run Code Online (Sandbox Code Playgroud)
对于我来说,更新版本不起作用。
我检查了使用“ng new project”创建的项目,在“polyfills.ts”文件中,它是“zone.js”而不是“zone.js/dist/zone”。
所以我将其更改为“zone.js”,它开始工作。
我发现我的测试配置tsconfig.spec.json是错误的。所以我改变了:
{
"extends": "./tsconfig.es5.json",
"compilerOptions": {
"outDir": "../out-tsc/spec",
"module": "commonjs",
"target": "es6",
"baseUrl": "",
"types": [
"jest",
"node"
]
},
"files": [
"test.ts",
"polyfills.ts"
],
"include": [
"**/*.spec.ts",
"**/*.d.ts"
]
}
Run Code Online (Sandbox Code Playgroud)
对此:
{
"extends": "./tsconfig.es5.json",
"compilerOptions": {
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"outDir": "../out-tsc/spec",
"module": "commonjs",
"types": [
"jasmine",
"node"
]
},
"files": [
"test.ts",
"polyfills.ts"
],
"include": [
"**/*.spec.ts",
"**/*.d.ts"
]
}
Run Code Online (Sandbox Code Playgroud)
并且错误消失了!
| 归档时间: |
|
| 查看次数: |
13153 次 |
| 最近记录: |