我正在尝试将我的角度项目的jest集成到单元测试中。
我按照this link的说明进行操作。
当我跑步时,我面临一个奇怪的错误ENOENT: no such file or directory, open 'E:\source-code\packages\core\src\view\ng_module.ts'
。
我的文件夹结构没有名为 package 的文件夹。经过大量挖掘,我发现npm包使用了packages\core\src\view\ng_module.ts'
(angular:P) < / p>
我不知道这个错误是如何抛出的,当我通过业力时会发生这种错误
这是我的开玩笑配置
"jest": {
"preset": "jest-preset-angular",
"setupTestFrameworkScriptFile": "<rootDir>/src/setupJest.ts",
"globals": {
"ts-jest": {
"tsConfigFile": "src/tsconfig.spec.json",
"useBabelrc": true
},
"__TRANSFORM_HTML__": true
},
"transform": {
"^.+\\.(ts|html)$": "<rootDir>/node_modules/jest-preset-angular/preprocessor.js",
"^.+\\.js$": "babel-jest"
},
"transformIgnorePatterns": [
"<rootDir>/node_modules/(?!(@ngrx|ngx-dialog|ng-infinity))"
]
}
答案 0 :(得分:0)
是时候回答我自己的问题了。
这似乎是一个版本问题。
在撰写本答复时,最新版本是:
"@types/jest": "^22.0.1",
"jest": "^22.0.4",
"jest-preset-angular": "^5.0.0"
支持我的项目的那个(角度v4)是:
"@types/jest": "^20.0.7",
"jest": "^20.0.4",
"jest-preset-angular": "^2.0.5"
之后,这些错误就会停止发生。
我再次检查了这个结果this git repo too(也用ng4编写):P。一旦我将jest版本更改为该repo中的最新版本,它就会盯着给出相同的奇怪路径packages\core\src\....
错误。
但是现在开始出现一些新的错误。我正在使用jest.spyOn().mockReturnValue()
在实际组件函数中抛出错误,这不应该是这种情况,因为函数调用应该被模拟并使用提供的返回值。我也试过jest.spyOn().mockImplementation()
,但没有成功。
我怀疑使用spyOn
方法导致错误。