我无法使用babel和Karma配置karma.conf.js文件以通过Webstorm在ES6上进行单元测试。
[我想在这里做的是在'/test/BaseElement.test.js'
上运行测试启动测试时,我收到以下错误:
An error was thrown in afterAll
Uncaught SyntaxError: Unexpected token 'export'
SyntaxError: Unexpected token 'export'
这对我来说意味着预处理未正确完成。
这是我package.json中的依赖项:
"dependencies": {},
"devDependencies": {
"@babel/core": "^7.9.0",
"@babel/plugin-proposal-class-properties": "^7.8.3",
"@babel/preset-env": "^7.9.5",
"@webcomponents/webcomponentsjs": "^2.4.3",
"jasmine": "^3.5.0",
"jspm": "^2.0.0-beta.7",
"karma": "^5.0.1",
"karma-babel-preprocessor": "^8.0.1",
"karma-chrome-launcher": "^3.1.0",
"karma-jasmine": "^3.1.1",
"karma-spec-reporter": "0.0.32",
"mocha": "^7.1.1"
还有我的Karma.config.js文件:
module.exports = function(config) {
config.set({
basePath: "",
frameworks: ["jasmine"],
Preprocessors: {
//'./Control/**/*.js': ['babel'],
// './lib/**/*.js': ['babel'],
//'./Module/**/*.js': ['babel'],
'../lib/Element/BaseElement.js': ['babel'],
'../test/BaseElement.test.js ': ['babel']
},
babelPreprocessor: {
options: {
presets: ['@babel/preset-env']
}
},
plugins: [
'@babel/core',
'karma-jasmine',
'karma-chrome-launcher',
'karma-babel-preprocessor'
],
files: [
{pattern: '../lib/Element/BaseElement.js', watched: true, included: true, served: true},
{ pattern: "*.test.js", type: "module", included: true }
],
//reporters: ['jasmine'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ["Chrome"],
singleRun: true,
concurrency: Infinity
});
};
当我使用--log-level调试标志输出时,没有出现任何有关预处理的信息。
文件位于以下位置:
root:package.json
在root / test中:BaseElement.test.js
和karma.conf.js
在root/lib/Element BaseElement.js
中
任何帮助将不胜感激。谢谢。
我发现了问题。它是预处理器,而不是预处理器。