在我正在使用Jest测试客户端代码(testEnvironment:'jsdom')和服务器端代码(testEnvironment:'node')以及收集客户端和服务器端代码覆盖的节点应用程序中.
目前我正在使用4个具有大量冗余配置的Jest配置文件来完成此任务.
客户
{
"bail": true,
"verbose": true,
"notify": true,
"scriptPreprocessor": "./node_modules/babel-jest",
"testPathIgnorePatterns": [
"./node_modules",
"./coverage",
"./dist",
"./build"
],
"testRegex": "\\.test\\.js"
}
Run Code Online (Sandbox Code Playgroud)
客户报道
{
"bail": true,
"verbose": true,
"notify": true,
"scriptPreprocessor": "./node_modules/babel-jest",
"testPathIgnorePatterns": [
"./node_modules",
"./coverage",
"./dist",
"./build"
],
"testRegex": "\\.test\\.js",
"collectCoverageFrom": ["**/*.js", "!**/node_modules/**"],
"collectCoverage": true,
"coverageDirectory": "./coverage",
"coveragePathIgnorePatterns": [
"./node_modules",
"./coverage",
"./dist",
"./build",
"./test"
],
"coverageThreshold": {
"global": {
"branches": 100,
"functions": 100,
"lines": 100,
"statements": 100
}
}
}
Run Code Online (Sandbox Code Playgroud)
服务器
{
"bail": true,
"verbose": true,
"notify": true,
"scriptPreprocessor": "./node_modules/babel-jest",
"testPathIgnorePatterns": [
"./node_modules",
"./coverage",
"./dist",
"./build"
],
"testRegex": "\\.test\\.js",
"testEnvironment": "node"
}
Run Code Online (Sandbox Code Playgroud)
服务器覆盖
{
"bail": true,
"verbose": true,
"notify": true,
"scriptPreprocessor": "./node_modules/babel-jest",
"testPathIgnorePatterns": [
"./node_modules",
"./coverage",
"./dist",
"./build"
],
"testRegex": "\\.test\\.js",
"testEnvironment": "node",
"collectCoverageFrom": ["**/*.js", "!**/node_modules/**"],
"collectCoverage": true,
"coverageDirectory": "./coverage",
"coveragePathIgnorePatterns": [
"./node_modules",
"./coverage",
"./dist",
"./build",
"./test"
],
"coverageThreshold": {
"global": {
"branches": 100,
"functions": 100,
"lines": 100,
"statements": 100
}
}
}
Run Code Online (Sandbox Code Playgroud)
如何在不重复4次配置的情况下实现此目的?我查看了preset配置选项.使用它我必须为每个配置创建一个单独的包.这是推荐的方式吗?
am0*_*0wa 23
是的,您可以定义共享jest.config.js
并在您的特定配置中重用它:
<rootDir>在共享配置中的所有路径中使用,因此这些路径也可以重复使用。client/jest.config.js
const sharedConfig = require('../jest.config.js');
module.exports = {
...sharedConfig,
'rootDir': './',
}
Run Code Online (Sandbox Code Playgroud)
server/jest.config.js
const sharedConfig = require('../jest.config.js');
module.exports = {
...sharedConfig,
'rootDir': './',
"testEnvironment": "node"
}
Run Code Online (Sandbox Code Playgroud)
如果需要,您还可以重复使用 jest 默认值:Jest 文档 - 配置 Jest
是的,从 Jest v20 开始,您可以将配置定义为 JS 文件,并使用它来共享类似配置的公共部分。有关配置 Jest 的文档。
默认情况下,Jest 查找:
jest.config.js"jest"进入package.json...并将父目录视为rootDir.
另外请务必检查该projects选项,这使得在 monorepos 中运行 Jest 变得更容易(例如,一个代码库中的客户端 + 服务器代码)。请参阅此答案以供参考:用 jest 测试两个环境
| 归档时间: |
|
| 查看次数: |
2159 次 |
| 最近记录: |