我正在尝试使用基于angular2-redux的Ionic2 rc1(使用角度2.0.0)应用来实现业力单元测试的可能性。 业力设置基本上采用以下回购: https://github.com/lathonez/clicker并且工作正常。我有一个简单的counter redux实现工作正常。当我尝试为我的测试设置angular2-redux时,我收到以下错误:
未捕获的ReferenceError:未定义进程 在webpack:///Users/luki/Applications/ionic/ionic2-redux-example/~/redux/es/index.js:14:0< - src / test.ts:65041
我知道流程未在浏览器中定义,但仅适用于服务器上的节点。我怎么需要调整我的业力配置才能使用angular2-redux?
调用createAppStoreFactory函数在TestBed.configureTestingModule中提供我的AppStore会导致此错误。
我的测试设置可以在以下回购中找到: https://github.com/lujakob/ionic2-redux-example/blob/master/src/test.ts
任何帮助表示赞赏!
(npm angular2-redux有一个演示应用程序和一个示例测试设置。但这取决于
答案 0 :(得分:2)
即使这是一个已经存在了三年的问题,对于其他面临此问题的人,这也是我的解决方案:
由于process
仅在NodeJS中定义,而没有在浏览器中定义,因此我们必须告诉karma应该“伪造”它。
创建一个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
。