我在将单元测试集成到项目的特定文件夹中时遇到问题。
我的架构如下:
|_ shared
|_ job-board
|_ admin-panel
作业板和管理面板都包含指向共享的符号链接,位于/client/src/shared
,每个都包含安装了babel eslint的节点模块
文件夹。shared不包含node_modules文件夹,它依赖于另外两个文件夹的node_模块。
有了这个架构,我成功地配置了我正在使用的所有工具(Webpack、eslint、eslint loader等等,但不是Jest)。
问题是,当我在job_board/*
或admin_panel/*
中创建一个*.test.js文件时,Babel-jest会正确应用于此文件,但是当我在share/*
中创建此文件时,Babel-jest未应用(因为Babel-jest在share
中不可用),因为以下错误证明:
FAIL ..\shared\utils\tests\StringUtils.test.js
● Test suite failed to run
SyntaxError: Unexpected token import
这是我的jest-config.json文件:
{
"moduleFileExtensions": [
"js"
],
"moduleNameMapper": {
"\\.(css|scss)$": "identity-obj-proxy"
},
"modulePaths": [
"<rootDir>/client"
],
"testPathDirs": [
"<rootDir>",
"<rootDir>/../shared"
],
"testRegex": "(\\.|/)test\\.jsx?$"
}
(注意,我必须添加"
和my.babelrc文件:
{
"plugins": [
"transform-decorators-legacy",
"transform-object-rest-spread"
],
"presets": [
["es2015", { "modules": false }],
"react",
"stage-0"
],
"env": {
"development": {
"presets": [
"react-hmre"
]
},
"test": {
"plugins": ["transform-es2015-modules-commonjs"]
}
}
}
最后,我使用:
节点--harmony_proxiesnode_modules/jest-cli/bin/jest.js--config./jest-config.json
我是否遗漏了一些东西,或者这真的是缺少为babel eslint或其他东西提供“根”的功能?
我还就Jest repo发行了一期债券,但它已经关闭了。我来了!
上面粘贴的Jest配置。
jest cli:18.1.0
节点: 5.6.0
净现值:3.6.0
操作系统: Windows 10
对于那些对变通方法感兴趣的人,我在浏览Babel-jest的源文件时想出了一个解决方案。只需在你的repos的公共根部创建一个. babelrc,扩展真正的根部。所以在我的情况下:
{
"extends": "./admin-panel/.babelrc"
}
看起来您与此人有类似的问题。
您是否在.babelrc文件中尝试过以下操作?
"env": {
"start": {
"presets": [
"react-hmre"
]
},
"test": {
"presets": ["es2015", "react", "stage-0"],
"plugins": ["transform-es2015-modules-commonjs"]
}
}
我正在学习反应,我想测试我的一个组件,但我坚持这个错误: 以下是我在阅读stackoverflow和github上的帖子时尝试过的一些东西 添加了测试预设和这些插件“变换-es2015-moids-Common js”、动态导入节点”到我的babel配置 在我的包裹里。json Jest属性具有以下设置: 我的实际组件是用ES6和typescript构建的,如果这对您有帮助的话:) 从我所读到的内
使用Jest测试Firebase功能,我遇到了导入的麻烦... console.log 我正在使用@Babel/core和@Babel/preet-env和Babel-jest package.json 我创建了一个babel.config.js文件 babel.config.js 我错过了什么?谢谢你的反馈 更新 我用Babel文档更新了我的配置。。。(v 7) console.log pack
我已经为连接的组件创建了测试。在一个文件中,我导入位于项目根文件夹外部的“本地化”模块。它没有被编译到ES5,Jest报告了同步错误:意外令牌导出。如何强制Jest转换该文件? 我有。带环境预设的巴别LRC。 package.json
问题内容: 这是我来自package.json文件的笑话配置: .babelrc文件位于我的根文件夹中: 根据在开玩笑的入门页面上找到的文档,这是babel运作所需的一切,这很神奇。 无论如何,此测试: 返回: 我究竟做错了什么? 问题答案: Jest设置了env变量进行测试,因此我不得不将预设添加到.babelrc中的env设置中:
问题内容: 我的项目中已经实现了其他相关问题中提供的解决方案,例如在.babelrc中包含正确的预设(es2015)。 我有两个项目(分别称为A和B),它们都使用ES6模块语法。在项目A中,我导入了通过npm安装的项目B,该项目位于node_modules文件夹中。当我为项目A运行测试套件时,出现错误: SyntaxError:意外的令牌导入 在此之前,项目B声称存在以下错误代码行: (函数(导出
在其他相关问题中提供的解决方案,例如在中包括适当的预设(es2015)。babelrc已在我的项目中实现。 我有两个项目(我们称它们为A和B),它们都使用ES6模块语法。在项目A中,我正在导入通过npm安装的项目B,该项目位于node_modules文件夹中。当我为项目A运行测试套件时,我得到了错误: SyntaxError:意外的令牌导入 前面是项目B中的这一错误代码行: (函数(导出、要求、模