Angular2 + karma test + redux-进程未定义

问题描述 投票:4回答:1

我正在尝试使用基于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有一个演示应用程序和一个示例测试设置。但这依赖于

unit-testing angular redux karma-runner ionic2
1个回答
0
投票

即使是差不多三年的问题,对于其他面临此问题的人,这也是我的解决方案:

由于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

© www.soinside.com 2019 - 2024. All rights reserved.