使用Jest运行测试时出现错误,我尝试修复此错误2个小时。但是,我无法修复它。我的模块正在使用ggplot(FindataCOmp,aes(x=Time,y=Count_of_FTE_Actual))+geom_bar(stat='identity')
软件包,并且此软件包中发生错误。但是,我不知道为什么会发生这种情况以及如何解决它。
jest.config.js
gapi-script
babel.config.js
module.exports = {
"collectCoverage": true,
"rootDir": "./",
"testRegex": "__tests__/.+\\.test\\.js",
"transform": {
'^.+\\.js?$': "babel-jest"
},
"moduleFileExtensions": ["js"],
"moduleDirectories": [
"node_modules",
"lib"
]
}
methods.test.js
module.exports = {
presets: [
'@babel/preset-env',
]
};
methods.js
import methods, { typeToActions } from '../lib/methods';
错误消息
C:\ haram \ github \ react-youtube-data-api \ node_modules \ gapi-script \ index.js:1 ({“对象。”:功能(模块,导出,要求,__目录名,__文件名,全局,笑话){导入 {'gapi,gapiComplete}来自'./gapiScript';
import { gapi } from "gapi-script"; ...
我的设置出了什么问题?
答案 0 :(得分:1)
Jest需要babel才能使用模块。 仅就测试而言,您不需要 jest.config.js ,只需将测试文件命名为xxx.spec.js或xxx.test.js或将文件放在名为 test < / strong>。
我使用以下 babel.config.js :
module.exports = function (api) {
api.cache(true)
const presets = [
"@babel/preset-env"
]
return {
presets
}
}
当设置不太复杂时,无需在package.json中添加“ type”:“ module”或按照其他答案所述使用mjs。
答案 1 :(得分:0)
在撰写本文时,Jest正在为ES6模块提供支持。您可以在此处跟踪进度:
https://jestjs.io/docs/en/ecmascript-modules
现在,您可以通过运行以下命令来消除此错误:
node --experimental-vm-modules node_modules/.bin/jest
而不是简单地
jest
使用此解决方案之前,请务必检查链接。
答案 2 :(得分:0)
我在 Paulo Coghi 对另一个问题的回答的帮助下解决了这个问题 -
Does Jest support ES6 import/export?
第 1 步:
将您的测试环境添加到项目根目录中的 .babelrc 中:
{
"env": {
"test": {
"plugins": ["@babel/plugin-transform-modules-commonjs"]
}
}
}
第 2 步:
安装 ECMAScript 6 转换插件:
npm install --save-dev @babel/plugin-transform-modules-commonjs