【发布时间】:2018-08-14 10:13:52
【问题描述】:
TLDR:如何配置jest,使其使用babel编译测试文件和globalSetup和globalTeardown中所需的文件?
我一直在努力配置jest 和babel。似乎当我运行我的测试时babel 无法加载配置文件,或者它根本没有运行。
在 package.json:
{
"scripts": {
"start": "babel-node src/index.js",
"test": "jest src/tests/*.test.js",
},
"devDependencies": {
"@babel/cli": "^7.0.0-rc.1",
"@babel/core": "^7.0.0-rc.1",
"@babel/node": "^7.0.0-rc.1",
"@babel/preset-env": "^7.0.0-rc.1",
"babel-jest": "^23.4.2",
"jest": "^23.5.0",
}
}
在 babel.config.js:
module.exports = (api) => {
if (api) api.cache(true);
const presets = ['@babel/preset-env'];
const plugins = [];
return {
presets,
plugins,
};
};
在 jest.config.js:
module.exports = {
globalSetup: './src/config/jest/setup',
globalTeardown: './src/config/jest/teardown',
};
当我运行npm run test 时,出现以下错误:
import app from '../../index';
^^^^^^ SyntaxError: Unexpected token import
...我认为这意味着babel 未能正确配置。我尝试登录两个配置文件,babel.config.js 仅在我执行npm start 时运行。
当我使用与.babelrc 相同的配置时,测试可以运行。但是globalSetup 和globalTeardown 不能。
【问题讨论】:
-
所以当我运行
npm start时,我使用babel-node,它似乎做了一些神奇的编译。我猜我也想在进行开玩笑测试时使用babel-node?
标签: node.js babeljs jestjs babel-jest