Angularjs 在Angular 1.3/JSPM/Babel项目上使用Karma进行单元测试

Angularjs 在Angular 1.3/JSPM/Babel项目上使用Karma进行单元测试,angularjs,karma-runner,ecmascript-6,jspm,Angularjs,Karma Runner,Ecmascript 6,Jspm,所以我正在使用jspm和babel建立一个angular 1.3ES6项目。Im使用es6的导入/导出功能。我安装了karma和karma jspm,可以毫无问题地运行基本测试。当我试图将我的一个模块导入到一个测试中来测试它时,我在karma中得到了一个错误 加载“app/services/chart data/chart data.spec”时出错http://localhost:9876/base/app/services/chart-data/chart-data.spec.js 加载“n

所以我正在使用jspm和babel建立一个angular 1.3ES6项目。Im使用es6的导入/导出功能。我安装了karma和karma jspm,可以毫无问题地运行基本测试。当我试图将我的一个模块导入到一个测试中来测试它时,我在karma中得到了一个错误

加载“app/services/chart data/chart data.spec”时出错http://localhost:9876/base/app/services/chart-data/chart-data.spec.js 加载“npm:babel”时出错-core@5.3.3“在http://localhost:9876/base/jspm_packages/npm/babel-core@5.3.3.js 误差评估http://localhost:9876/base/jspm_packages/npm/babel-core@5.3.3.js 误差评估http://localhost:9876/base/jspm_packages/npm/babel-core@5.3.3/browser.js TypeError:“undefined”不是函数(正在计算“re.test.bind(re)”) 未定义

这是我的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中寻求帮助,但到目前为止没有任何结果


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

看起来您正在不支持的浏览器中运行测试。巴贝尔需要这个功能


您可以通过修复,或尝试新版本的浏览器。从2.0版开始,PhantomJS就具有此功能。

看起来您正在不支持的浏览器中运行测试。巴贝尔需要这个功能


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

Perfect。这解决了巴别塔的问题,谢谢!我还有几个问题(不确定我是应该问一个新问题还是可以在这里问)。第一个问题是karma一直在看我的bower components目录(它在应用程序/组件中),它有一堆引导js文件,但一直失败。我不想让它装那些东西。当我去掉bootstrap dir时,它工作得很好,但是它提到它找不到角。当我显式地将angular添加到加载文件(在jspm对象下)时,它表示angular被多次加载。再一次,让我知道我是否应该提出新的问题。谢谢您的
app/components
目录受jspm配置中的通配符表达式的影响。如果您应该将bower组件移出此目录,或者更改jspm配置并使其更具体、更完善。这解决了巴别塔的问题,谢谢!我还有几个问题(不确定我是应该问一个新问题还是可以在这里问)。第一个问题是karma一直在看我的bower components目录(它在应用程序/组件中),它有一堆引导js文件,但一直失败。我不想让它装那些东西。当我去掉bootstrap dir时,它工作得很好,但是它提到它找不到角。当我显式地将angular添加到加载文件(在jspm对象下)时,它表示angular被多次加载。再一次,让我知道我是否应该提出新的问题。谢谢您的
app/components
目录受jspm配置中的通配符表达式的影响。如果您应该将bower组件移出此目录,或者更改jspm配置并使其更具体、更完善。这解决了巴别塔的问题,谢谢!我还有几个问题(不确定我是应该问一个新问题还是可以在这里问)。第一个问题是karma一直在看我的bower components目录(它在应用程序/组件中),它有一堆引导js文件,但一直失败。我不想让它装那些东西。当我去掉bootstrap dir时,它工作得很好,但是它提到它找不到角。当我显式地将angular添加到加载文件(在jspm对象下)时,它表示angular被多次加载。再一次,让我知道我是否应该提出新的问题。谢谢您的
app/components
目录受jspm配置中的通配符表达式的影响。如果您应该将bower组件移出此目录,或者更改jspm配置并使其更具体