如何使用不同的 jest.config.js 进行单元和组件测试?
How to use different jest.config.js for unit and component tests?
我正在尝试为应用程序的组件级测试创建一套单独的测试。
在这个单独的套件中,我需要一个自定义测试环境来引导一些持久层模拟,这些测试将位于我的项目结构中与我的单元测试不同的文件夹中。
例如单元测试将位于 __tests__
文件夹中的代码附近,而组件测试将位于顶级 tests/
目录中。
我已经完成了大部分 jest.config.js 设置,但是当我添加 projects
部分以覆盖某些字段时,特别是 testMatch
和 testEnvironment
它完全忽略了我在全局中指定的配置。
现在我一直在阅读 projects
配置主要是关于 monorepo 设置,所以我认为这不是正确的方法。
理想情况下,我可以在我的 tests/
目录中有一个单独的 jest.config.js
,但我不知道如何设置它,如果它能工作的话。
对此问题的任何见解都会有所帮助。提前致谢。
要指定不同的配置文件,您可以使用 --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
并且它将 运行 所有项目,或者如果我想指定一个特定的配置 运行 我可以运行 jest --projects jest.unit.config.js
它只会 运行 那个特定的项目。
我还可以将脚本部分添加到我的 package.json 到 运行 他们更容易。
"scripts": {
"test": "jest",
"test:unit": "jest --projects tests/jest.component.config.js",
"test:component": "jest --projects jest.unit.config.js"
}
我正在尝试为应用程序的组件级测试创建一套单独的测试。
在这个单独的套件中,我需要一个自定义测试环境来引导一些持久层模拟,这些测试将位于我的项目结构中与我的单元测试不同的文件夹中。
例如单元测试将位于 __tests__
文件夹中的代码附近,而组件测试将位于顶级 tests/
目录中。
我已经完成了大部分 jest.config.js 设置,但是当我添加 projects
部分以覆盖某些字段时,特别是 testMatch
和 testEnvironment
它完全忽略了我在全局中指定的配置。
现在我一直在阅读 projects
配置主要是关于 monorepo 设置,所以我认为这不是正确的方法。
理想情况下,我可以在我的 tests/
目录中有一个单独的 jest.config.js
,但我不知道如何设置它,如果它能工作的话。
对此问题的任何见解都会有所帮助。提前致谢。
要指定不同的配置文件,您可以使用 --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
并且它将 运行 所有项目,或者如果我想指定一个特定的配置 运行 我可以运行 jest --projects jest.unit.config.js
它只会 运行 那个特定的项目。
我还可以将脚本部分添加到我的 package.json 到 运行 他们更容易。
"scripts": {
"test": "jest",
"test:unit": "jest --projects tests/jest.component.config.js",
"test:component": "jest --projects jest.unit.config.js"
}