我正在尝试使用jest测试以下内容,并且遇到了与babel有关的问题,特别是导出默认类。请考虑以下...
export default class Test {
get() {
return {}
}
}
具有这样的测试设置...
import Test from './test'
describe('test', () => {
it('should', () => {
// [...]
});
});
失败,出现以下错误...
node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck.js:1 ({“对象。”:功能(模块,导出,要求,__目录名,__文件名,全局,笑话){导出 默认函数_classCallCheck(instance,Constructor){ ^^^^^^
SyntaxError: Unexpected token export
这是vue网络应用程序。我有以下配置...
// babel.config.js
module.exports = {
presets: ['@vue/app', '@babel/env']
};
// jest.config.js
module.exports = {
collectCoverage: true,
collectCoverageFrom: [
'src/**'
],
coverageDirectory: '.coverage',
moduleFileExtensions: [
'js',
'json',
'vue'
],
transform: {
'^.+\\.vue$': 'vue-jest',
'.+\\.(css|styl|less|sass|scss|png|jpg|ttf|woff|woff2)$': 'jest-transform-stub',
'^.+\\.js$': 'babel-jest'
},
moduleNameMapper: {
'^@/(.*)$': '<rootDir>/src/$1'
},
testMatch: [
'<rootDir>/src/**/*.spec.js'
],
transformIgnorePatterns: ['<rootDir>/node_modules/']
};
最后,我的测试脚本...
// package.json
[...]
"test": "jest"
[...]
这让我发疯了,因为我所有的.vue
文件和测试都能正常工作。我在使用上述特定语法的某些核心.js
文件中仅遇到问题。
我该如何解决?
答案 0 :(得分:0)
我最终删除了@vue/app
作为预设。这似乎无关紧要,因为我的所有vue测试在@babel/env
上都可以正常工作。我的配置结果如下...
// babel.config.js
module.exports = {
presets: ['@babel/env']
};
我觉得这有点反气候。我没有深入研究@vue/app
可能引起这种观察到的行为的原因,但是显然我不需要继续前进。