TLDR: 我如何配置jest以便使用babel编译测试文件和globalSetup和globalTeardown中所需的文件?
我一直在努力配置jest和babel,但是当我运行我的测试时,似乎babel无法加载配置文件,或者根本不运行。
在package.json中:
当我运行
我一直在努力配置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,
};
};
in 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
没有正确配置。我尝试在两个配置文件上记录日志,只有当我执行 npm start
时才会运行 babel.config.js
。
当我使用与 .babelrc
相同的配置时,测试可以运行。然而,globalSetup
和 globalTeardown
却不能运行。
npm start
时,我使用babel-node
进行一些神奇的编译。我想在进行 Jest 测试时也使用babel-node
,是吗? - nomadoda