如何使用不同的jest.config.js进行单元和组件测试?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用不同的jest.config.js进行单元和组件测试?相关的知识,希望对你有一定的参考价值。

我正在尝试为应用的组件级测试创建单独的测试套件。

在这个单独的套件中,我需要一个自定义的测试环境,该环境将引导一些持久层模拟,并且这些测试将与单元测试存放在我的项目结构中的单独文件夹中。

例如单元测试将在__tests__文件夹中的代码附近,而组件测试将在顶层tests/目录中。

我已经完成了jest.config.js的大部分设置,但是当我添加projects部分以覆盖某些字段时,特别是testMatchtestEnvironment,它完全忽略了我在global中指定的配置。

现在,我一直在阅读projects配置主要是关于monorepo设置的信息,所以我认为这不是正确的方法。

理想情况下,我在jest.config.js目录中只能有一个单独的tests/,但即使可以使用,我也看不到如何设置它。

任何对此问题的见解都会有所帮助。提前谢谢。

答案

要指定不同的配置文件,可以使用--config选项。

例如,如果您具有用于组件测试的--config文件配置和用于单元测试的tests/jest.config.js文件,则可以在jest.config.js中配置脚本,使它们看起来像这样:

package.json
另一答案

我最终要做的是在"scripts": { "tests:unit": "jest --config=jest.config.js", "tests:component": "jest --config=tests/jest.config.js" } 中指定单独的项目>

package.json

这允许我自己运行"jest": { "projects": [ "<rootDir>/jest.unit.config.js", "<rootDir>/tests/jest.component.config.js" ] } ,它将运行所有项目,或者如果我想指定要运行的特定配置,我可以运行jest,它将仅运行该特定项目。

我还可以在我的package.json中添加一个脚本部分,以更轻松地运行它们。

jest --projects jest.unit.config.js

以上是关于如何使用不同的jest.config.js进行单元和组件测试?的主要内容,如果未能解决你的问题,请参考以下文章

使用Jest进行单元测试

如何在 JEST 单元测试中修复“SVG 未定义”

使用jest做单元测试

jest.config.js 中的 `moduleNameMapper` 设置在 CircleCI 上不起作用

在 TypeScript 中使用 NextJS 设置 Jest + React 测试库 -- 设置 upp jest.config.js 时出错

Vue 开发实战实战篇 # 46:如何做好组件的单元测试