【发布时间】:2016-02-28 04:30:40
【问题描述】:
我们已经安装了 karma,它使用 mocha 和 chai 进行测试。我们正在尝试使用 karma-babel-preprocessor 将 babel 直接集成到 karma 中,以将我们的 ES6 文件转换为 ES5 以运行。单独使用 mocha 与 babel 一起使用,即 mocha 测试命令,但我们尝试使用 karma 代替它不起作用。
karma.conf.js sn-p:
frameworks: ['mocha', 'chai'],
// preprocess matching files before serving them to the browser
// available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
preprocessors: {
'src/**/*.js': ['babel'],
'test/**/*_spec.js': ['babel']
},
"babelPreprocessor": {
options: {
presets: ['es2015'],
sourceMap: 'inline'
},
filename: function(file) {
return file.originalPath.replace(/\.js$/, '.es5.js');
},
sourceFileName: function(file) {
return file.originalPath;
}
},
// list of files / patterns to load in the browser
files: [
'src/**/*.js',
'test/**/*_spec.js'
],
package.json sn-ps:
"scripts": {
"test": "./node_modules/karma/bin/karma start karma.conf.js"
},
"babel": {
"presets": ["es2015"]
},
"devDependencies": {
"babel-preset-es2015": "^6.1.18",
"chai": "^3.4.1",
"karma": "^0.13.15",
"karma-babel-preprocessor": "^6.0.1",
"karma-chai": "^0.1.0",
"karma-mocha": "^0.2.1",
"karma-phantomjs-launcher": "^0.2.1",
"phantomjs": "^1.9.18",
"redux": "^3.0.4"
}
我们得到以下错误:
PhantomJS 1.9.8 (Mac OS X 0.0.0) ERROR
ReferenceError: Can't find variable: exports
at Users/alexgurr/BT/FutureVoice/trunk/Portal/server/src/login.es5.js:3
当我们评估正在加载的 JS 文件时,它们还没有被转换为 ES5,因此语法 'export' 仍然存在。
我们不想使用任何其他框架进行转换,即。 webpack、browserify 等。
谢谢!
【问题讨论】:
-
Karma 在浏览器上运行您的组件和测试。如果您想测试您的节点模块,请使用 jasmine、mocha 等节点运行器。您不需要 Karma,实际上使用它是错误的,因为它是不同的运行时。
标签: javascript testing mocha.js karma-runner babeljs