我正在尝试使用基于angular2-redux的Ionic2 rc1(使用angular 2.0.0)应用程序来实现业力单元测试。以下回购基本上采用了业力设置:https://github.com/lathonez/clicker并且工作正常。我有一个简单的计数器redux实现,也可以正常工作。当我尝试为我的测试设置angular2-redux时,出现以下错误:
Uncaught ReferenceError:未定义过程在webpack:///Users/luki/Applications/ionic/ionic2-redux-example/~/redux/es/index.js:14:0
我知道进程未在浏览器中定义,仅可用于服务器上的节点。我需要如何调整我的业力配置才能使用angular2-redux?
调用createAppStoreFactory函数在TestBed.configureTestingModule中提供我的AppStore会导致此错误。
我的测试设置可以在以下仓库中找到:https://github.com/lujakob/ionic2-redux-example/blob/master/src/test.ts
任何帮助表示赞赏!
((npm angular2-redux有一个演示应用程序和一个示例测试设置。但这依赖于
即使是差不多三年的问题,对于其他面临此问题的人,这也是我的解决方案:
由于process
仅在NodeJS中定义,而没有在浏览器中定义,我们必须告诉业力它应该“伪造”它。
创建一个javascript文件,并根据需要为其命名(例如global-variables.js
),其内容如下:
const process = {
env: {
NODE_ENV :'production'
}
};
在您的karma.conf.js
中,将此文件作为FIRST导入导入到files[]
数组中:
(...)
files: [
'./test/global-variables.js',
{ pattern: config.grep ? config.grep : 'test/**/*.test.ts', type: 'module' }
],
(...)
至少应该修复ReferenceError: process is not defined
。