问题标签 [babel-jest]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
webpack - 如何使用特定的 webpack 配置文件来运行 Jest?
我正在尝试使用 Jest 编写测试并导入 es6 模块。我目前正在使用 webpack3 和 jest 21.0.2。我的测试代码以
这会引发错误“SyntaxError: Unexpected token import”。我有用于开发和生产构建的 development.webpack.config.js 和 production.webpack.config.js 文件。webpack.config.js 文件基本上读取 env 变量并确定要引用哪个文件。
下面的代码是 development.webpack.config.js 处理这个错误的一部分:
似乎当我运行 npm test 时,Jest 并不是指 development.webpack.config.js。运行 Jest 时有没有办法设置特定的 webpack 配置文件?
ruby-on-rails - 使用 Rails + Webpacker + Jest 测试 .js.erb 文件
我有一个使用 webpacker 的 Rails 5 应用程序,带有一个文件 app/javascript/packs/components/module_one.js,我正在尝试用 Jest 进行测试。此文件包含对 .js.erb 文件的导入,如下所示:
module_two.js.erb 包含以下内容:
在运行 webpack-dev-server 时,一切都按预期工作,但是当我尝试运行 yarn test 时,它会抱怨以下错误:
所以看起来 module_two.js.erb 文件没有从 ES6 正确转换,因为当我删除 module_one.js 的第一行时,它不再抱怨了。
这是我当前的设置:
reactjs - 使用 create-react-app 包在 monorepo 中运行 jest
这是一个问题。
我正在尝试将我的一些包合并到一个 monorepo 中。我正在使用yarn
它的workspaces-experimental
功能。因此存储库文件夹结构如下所示:
现在,目标之一是简化测试。我想jest
在根目录中运行,以便它为所有包运行单元测试。它适用于myapp1
及myapp2
以上的 node.js 应用程序。但是,它是用(无弹出)myreactapp1
构建的,并使用 ES6 特性(如)和 jsdom 渲染。如果我从dir运行它们,这些测试工作正常,代码通过管道(如果我理解得很好)。但是根笑话在第一条语句上失败了。create-react-app
import
myreactapp1
yarn test
babel
import
我该怎么做 ?
PS我尝试安装babel-jest
,但似乎无法直接从控制台(Windows)启动。
jestjs - 使用 Jest 进行测试时如何忽略“-!svg-react-loader!./path/to/my.svg”而不将所有内容与 webpack 捆绑
我们对应用程序中的一些 SVG 文件使用 svg-react-loader。我们正在尝试设置 jest 以使用 babel-jest 和以下.babelrc 运行:
以下测试失败:
有错误:
Cannot find module '-!svg-react-loader!../../assets/grid.svg' from 'Icon.js'
我怎么能忽略以“-!svg-react-loader!../../assets/grid.svg”开头的导入网格?
ecmascript-6 - 带有 ES6 模块的 babel-jest
我很高兴使用 node 8.6 并打开了实验性 ES6 模块选项(--experimental-modules)。这让我可以完美地为 node 编写简单的 ES2015 代码,而无需 babel。
问题是当我尝试用 jest 创建一些测试时,它无法抱怨语法错误:“意外的令牌导入”。
.babelrc 配置如下:
我的 jest.config.js 如下:
抛出的错误:
相关包:
- babel-core@^6.26.0
- 开玩笑@^21.2.1
- babel-jest@^21.2.0
- babel-preset-env@^1.6.0
任何帮助将不胜感激。谢谢 :)
更新:我尝试使用以下命令在没有 babel 的情况下调用 jest,没有任何更改:node --experimental-modules node_modules/.bin/jest
jestjs - 开玩笑不在多项目模式下选择配置
我们最近将两个不同的 repos 迁移到一个 monorepo 中。每个都使用 jest 和自己的自定义配置,在他们自己的 package.json 文件中定义。
我想使用该--projects
标志从 monorepo 的根目录跨两个项目运行 Jest。我jest.config.js
在 monorepo 的根目录中添加了一个文件:
跑步者成功地为两个项目选择了测试,但它似乎没有使用每个项目的自定义配置。例如,在“projectA”中,我使用的是 babel-plugin-module-resolver。当我单独在该项目中运行 jest 时,babel-jest 成功获取了该插件并且它工作正常,但是当我在多项目模式下从根目录运行它时,我收到“找不到模块...”错误,表明插件没有被使用。
同样,在“projectB”中,我使用的是自定义setupTestFrameworkScriptFile
. 在这个项目中运行 jest 可以很好地运行该文件,但从根目录运行时会被忽略。
我对多项目模式的理解是每个单独的项目都应该保持自己的设置/配置不变。我错过了什么?我是否也需要在根目录中配置这些?
reactjs - Jest 失败 React 16 升级后无法从“ReactShallowRenderer.js”中找到模块“react/lib/React”
刚刚从 v15.6.2 升级到反应 v16.0.0(通过变基)
问题
运行我的笑话测试会出现以下错误
我是如何升级的
第 1 步:yarn.lock
在变基期间,使用 React v16 到一个分支 - 我让yarn 1.1.0 处理我的 yarn.lock 文件上的合并冲突
第 2 步:添加适配器
我添加了新的适配器setupTestFramework.js
第三步:升级包
并升级了以下软件包:
谁能看到我错过的任何东西?
jestjs - Jest 在解析返回另一个装饰器的装饰器时停止
我一直在我的组件上使用 graphql 装饰器(通过 react-apollo),为了使我的代码更加干燥,我决定将 graphql 函数包装在另一个装饰器中,如下所示:
令人高兴的是,当我像这样使用它时,它可以在浏览器中使用:
但是,当我尝试使用 Jest 运行测试时,导入此类的任何测试都会返回指向 BlogPostContainer 类声明的错误
当我用相同的 graphql 装饰器替换 WrappedQuery 时,测试运行正常。但是由于这个查询函数有 15 行长,并且在许多类之间会发生变化,所以并不理想。就像我说的,wrappedQuery 在浏览器中工作。也许这是一个jsdom问题?我没有足够的经验知道问题是出在 Jest、babel-jest、jsdom 还是其他什么东西上……
我也尝试像没有 transform-decorators 插件一样使用该功能,但我遇到了同样的问题
这是我的配置文件:
reactjs - 关于 react-native@0.50.x 的发布,版本不匹配
我是 react-native 应用程序开发人员,最近尝试从相同的代码库编写 react-native 网络和移动应用程序。
这是一个链接!我试过了。
但是我在遵循这些说明时遇到了问题。
直到昨天,我已经尝试了整整 3 天,但没有找到 react-native、react、jest-expo、expo 和 react-native-web 的正确版本。即 react-native@0.48.4 需要 react@16.0.0-alpha.12。但是 jest-expo 需要 react@16.0.0-beta.5
我已经尝试了几乎所有版本,但在 react-native@0.50.x 发布之前没有发现并弄清楚,不可能使用那篇文章。
你可以帮帮我吗?