首页 > 解决方案 > 创建 React App Rewired 应用程序忽略 jest.config.js

问题描述

我有一个使用“create react app rewired”创建的反应应用程序。我已经安装了 ts-jest 并且希望能够自定义 Jest。我从 ts-jest 阅读了文档并npx ts-jest config:init在我的项目的根级别执行以创建初始配置文件。为了测试 jest 确实在使用该配置文件,我console.log(window);在示例测试文件中编写了以下行并修改了配置,使其testEnvironment设置为“node”。

我希望测试由于window未定义而失败,但我正在取回窗口对象。我尝试将文件重命名为jest.config.ts,我得到了相同的结果。

我对所有文件进行了全局搜索,以查看是否有另一个配置文件覆盖了我的配置,但没有找到。

我究竟做错了什么?我知道 jest 预装了 create-react-app (CRA)。我想 create-react-app-rewired 只会在 CRA 上方包含一些包装器,那么它从哪里获取配置?

标签: configurationconfigcreate-react-appts-jest

解决方案


我开始意识到 create-react-app-rewired 包与此问题无关,因为它只是一个包装器包,它公开一个configure-overrides.js文件以允许开发人员修改由 create-react-app 管理的 webpack 配置。

我创建的jest.config.tsorjest.config.js配置文件没有效果,因为create react app (CRA) 将在底层生成并使用它自己的 jest 配置文件

我在研究另一个问题时偶然发现了这一点。dstapleton92在 GitHub 上的评论帮助我得出了这个结论。

Create React App 支持通过文件中的“jest”属性覆盖一些值package.json。在检查CRA 中的 jest config factory 函数时testEnvironment属性被硬编码为“jsdom”,并且密钥不会作为可覆盖属性列表的一部分公开。

这就是我所做的尝试没有成功的原因。


推荐阅读