1

所以我正在使用 jspm 和 babel 建立一个 Angular 1.3 es6 项目。我使用 es6 的导入/导出功能。我安装了 karma 和 karma-jspm,可以毫无问题地运行基本测试。当我尝试将我的一个模块导入到测试中以对其进行测试时,我收到了业力错误。

Error loading "app/services/chart-data/chart-data.spec" at http://localhost:9876/base/app/services/chart-data/chart-data.spec.js Error loading "npm:babel-core@5.3.3" at http://localhost:9876/base/jspm_packages/npm/babel-core@5.3.3.js Error evaluating http://localhost:9876/base/jspm_packages/npm/babel-core@5.3.3.js Error evaluating http://localhost:9876/base/jspm_packages/npm/babel-core@5.3.3/browser.js TypeError: 'undefined' is not a function (evaluating 're.test.bind(re)') at undefined

这是我的 karma 配置文件的一部分:

frameworks: ['jspm', 'jasmine'],


// list of files / patterns to load in the browser
files: [
],

jspm: {
  // Edit this to your needs
  loadFiles: ['app/**/*.spec.js'],
  serveFiles: []
},

这是一个示例测试:

import {chartData} from 'chart-data.service';

describe('Example test', function() {
  it('should be foo', function() {
      expect('foo').toBe('foo');
  });
});

我没有任何运气来寻找答案,甚至在 jspm gitter 中寻求帮助,但到目前为止没有任何结果。

项目中的其他一切似乎都运行良好,如果删除导入行,我可以运行测试。任何帮助或建议将不胜感激。

4

1 回答 1

0

看起来您正在不支持的浏览器中运行测试Function.prototype.bind。Babel 需要这个功能。

您可以通过karma-phantomjs-shim修复,或者尝试新版本的浏览器。从 2.0 版本开始,PhantomJS 就有了这个功能。

于 2015-06-06T15:07:52.483 回答