问题标签 [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.

0 投票
0 回答
306 浏览

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 配置文件?

0 投票
1 回答
857 浏览

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 的第一行时,它不再抱怨了。

这是我当前的设置:


0 投票
1 回答
1371 浏览

reactjs - 使用 create-react-app 包在 monorepo 中运行 jest

这是一个问题。

我正在尝试将我的一些包合并到一个 monorepo 中。我正在使用yarn它的workspaces-experimental功能。因此存储库文件夹结构如下所示:

现在,目标之一是简化测试。我想jest在根目录中运行,以便它为所有包运行单元测试。它适用于myapp1myapp2以上的 node.js 应用程序。但是,它是用(无弹出)myreactapp1构建的,并使用 ES6 特性(如)和 jsdom 渲染。如果我从dir运行它们,这些测试工作正常,代码通过管道(如果我理解得很好)。但是根笑话在第一条语句上失败了。create-react-appimportmyreactapp1yarn testbabelimport

我该怎么做 ?

PS我尝试安装babel-jest,但似乎无法直接从控制台(Windows)启动。

0 投票
3 回答
4669 浏览

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”开头的导入网格

0 投票
2 回答
2645 浏览

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

0 投票
1 回答
1869 浏览

jestjs - 开玩笑不在多项目模式下选择配置

我们最近将两个不同的 repos 迁移到一个 monorepo 中。每个都使用 jest 和自己的自定义配置,在他们自己的 package.json 文件中定义。

我想使用该--projects标志从 monorepo 的根目录跨两个项目运行 Jest。我jest.config.js在 monorepo 的根目录中添加了一个文件:

跑步者成功地为两个项目选择了测试,但它似乎没有使用每个项目的自定义配置。例如,在“projectA”中,我使用的是 babel-plugin-module-resolver。当我单独在该项目中运行 jest 时,babel-jest 成功获取了该插件并且它工作正常,但是当我在多项目模式下从根目录运行它时,我收到“找不到模块...”错误,表明插件没有被使用。

同样,在“projectB”中,我使用的是自定义setupTestFrameworkScriptFile. 在这个项目中运行 jest 可以很好地运行该文件,但从根目录运行时会被忽略。

我对多项目模式的理解是每个单独的项目都应该保持自己的设置/配置不变。我错过了什么?我是否也需要在根目录中配置这些?

0 投票
2 回答
6062 浏览

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

第三步:升级包

并升级了以下软件包:

谁能看到我错过的任何东西?

0 投票
0 回答
282 浏览

jestjs - Jest 在解析返回另一个装饰器的装饰器时停止

我一直在我的组件上使用 graphql 装饰器(通过 react-apollo),为了使我的代码更加干燥,我决定将 graphql 函数包装在另一个装饰器中,如下所示:

令人高兴的是,当我像这样使用它时,它可以在浏览器中使用:

但是,当我尝试使用 Jest 运行测试时,导入此类的任何测试都会返回指向 BlogPostContainer 类声明的错误

当我用相同的 graphql 装饰器替换 WrappedQuery 时,测试运行正常。但是由于这个查询函数有 15 行长,并且在许多类之间会发生变化,所以并不理想。就像我说的,wrappedQuery 在浏览器中工作。也许这是一个jsdom问题?我没有足够的经验知道问题是出在 Jest、babel-jest、jsdom 还是其他什么东西上……

我也尝试像没有 transform-decorators 插件一样使用该功能,但我遇到了同样的问题

这是我的配置文件:

0 投票
0 回答
639 浏览

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 发布之前没有发现并弄清楚,不可能使用那篇文章。

你可以帮帮我吗?

0 投票
0 回答
611 浏览

javascript - 转换错误:react native 中指定的未知插件“transform-decorators”

我在安装 jest 和 transform-decorators-legacy 后得到了这个。但是 jest 运行成功并通过了每个屏幕的测试。

我正在为商店使用 MOBX。 在此处输入图像描述

bablerc 文件:

包.json