kew*_*wur 9 karma-jasmine karma-webpack angular
我最近从 Angular9 更新到 Angular 12。更新后我的测试开始“失败”。我对此进行了引用,因为测试本身似乎很好,但是每次运行后都会出现一个“错误”条目,这不是很有帮助
Uncaught ReferenceError: process is not defined
ReferenceError: process is not defined
at Object.71732 (http://localhost:9876/_karma_webpack_/webpack:/node_modules/util/util.js:109:1)
at __webpack_require__ (http://localhost:9876/_karma_webpack_/webpack:/webpack/bootstrap:19:1)
at Object.89122 (http://localhost:9876/_karma_webpack_/webpack:/node_modules/assert/build/internal/assert/assertion_error.js:35:16)
at __webpack_require__ (http://localhost:9876/_karma_webpack_/webpack:/webpack/bootstrap:19:1)
at Object.80469 (http://localhost:9876/_karma_webpack_/webpack:/node_modules/assert/build/assert.js:36:22)
at __webpack_require__ (http://localhost:9876/_karma_webpack_/webpack:/webpack/bootstrap:19:1)
at Module.82736 (http://localhost:9876/_karma_webpack_/main.js:2879:64)
at __webpack_require__ (http://localhost:9876/_karma_webpack_/webpack:/webpack/bootstrap:19:1)
at webpackContext (http://localhost:9876/_karma_webpack_/webpack:/home/kewur/workplace/Project/project-app/src|sync|/\.spec\.ts$:111:1)
at Array.map (<anonymous>)
Run Code Online (Sandbox Code Playgroud)
我有点困惑,因为错误非常模糊。我是否缺少此升级所需的一些额外依赖项?我没有在代码中的任何地方引用 process,所以它所指的内容必须在 webpack 或 karma 中?
kew*_*wur 13
我最终不得不定义一个“模拟”流程对象。我认为 Angular 的较新版本(我目前使用的是 9 版,现在是 12 版)不包含 nodeJS 进程对象。
基本上,我在应用程序的根目录添加了一个新的“test”文件夹,并添加了一个名为 global-variables.js 的文件,其中包含此文件
const process = {
env: {
NODE_ENV :'production'
}
};
Run Code Online (Sandbox Code Playgroud)
然后我在 karma.conf 中导入了这个带有 karma 的文件
files: [
'test/global-variables.js',
]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4765 次 |
| 最近记录: |