将 Jest 覆盖阈值添加到 create-react-app 项目
Add Jest coverage threshold to create-react-app project
这是最初使用 create-react-app
生成的 package.json
文件的 "scripts"
部分:
"scripts": {
"start": "concurrently \"react-scripts start\" \"node server.js\"",
"build": "react-scripts build",
"eject": "react-scripts eject",
"test": "react-scripts test --env=jsdom --coverage --watchAll",
"start:server": "node server"
},
我想将 Jest 配置为具有这样的 coverage threshold:
"jest": {
"coverageThreshold": {
"global": {
"branches": 100,
"functions": 100,
"lines": 100,
"statements": 100
}
}
}
但是,当我 运行 yarn test
时,看起来 "jest"
部分并没有被执行。我需要添加一些额外的东西 b/c 这个项目是用 create-react-app
构建的吗?
谢谢!
问题是 create-react-app
使用自己的设置 here. The easiest thing would be to eject: npm run eject
来完全控制设置。
另一种方法是将所有设置复制到您自己的设置中,然后使用附加参数 --config=<pathToYourSettings>
开始测试
您可以覆盖create-react-app#coverage-reporting指示的某些覆盖率报告指标。请注意,这必须在你的 package.json
中配置,因为这是 create-react-app 寻找你覆盖的地方(也就是,不在 .jestrc
或 jest.config.js
文件中)。但是正如@Andreas 提到的,如果您想完全控制,弹出或创建您自己的配置。
作为旁注,您可以通过使用 --config
标志和 test
脚本(来自 jest)从 create-react-app 中提取 jest 配置,然后复制它使用您的更新进入您自己的配置。可能比弄清楚 create-react-app 在做什么更容易。
现在,react-app-rewired 可能是一条新的道路。
您可以在 package.json
中提到的笑话部分配置 Jest:
https://github.com/timarney/react-app-rewired#2-jest-configuration---testing
package.json
- 将新的
npm script
添加到报道
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"coverage": "npm test -- --coverage",
"eject": "react-scripts eject"
}
- 并添加一个
jest config
"jest": {
"coverageThreshold": {
"global": {
"statements": 100,
"branches": 50,
"functions": 100,
"lines": 100
}
}
},
npm run coverage
你可以参考这个最新的link:Configuring threshold limit
通过将此添加到您的 package.json:
"jest": {
"coverageThreshold": {
"global": {
"branches": 75,
"functions": 75,
"lines": 75,
"statements": 75
}
}
}
这是最初使用 create-react-app
生成的 package.json
文件的 "scripts"
部分:
"scripts": {
"start": "concurrently \"react-scripts start\" \"node server.js\"",
"build": "react-scripts build",
"eject": "react-scripts eject",
"test": "react-scripts test --env=jsdom --coverage --watchAll",
"start:server": "node server"
},
我想将 Jest 配置为具有这样的 coverage threshold:
"jest": {
"coverageThreshold": {
"global": {
"branches": 100,
"functions": 100,
"lines": 100,
"statements": 100
}
}
}
但是,当我 运行 yarn test
时,看起来 "jest"
部分并没有被执行。我需要添加一些额外的东西 b/c 这个项目是用 create-react-app
构建的吗?
谢谢!
问题是 create-react-app
使用自己的设置 here. The easiest thing would be to eject: npm run eject
来完全控制设置。
另一种方法是将所有设置复制到您自己的设置中,然后使用附加参数 --config=<pathToYourSettings>
您可以覆盖create-react-app#coverage-reporting指示的某些覆盖率报告指标。请注意,这必须在你的 package.json
中配置,因为这是 create-react-app 寻找你覆盖的地方(也就是,不在 .jestrc
或 jest.config.js
文件中)。但是正如@Andreas 提到的,如果您想完全控制,弹出或创建您自己的配置。
作为旁注,您可以通过使用 --config
标志和 test
脚本(来自 jest)从 create-react-app 中提取 jest 配置,然后复制它使用您的更新进入您自己的配置。可能比弄清楚 create-react-app 在做什么更容易。
现在,react-app-rewired 可能是一条新的道路。
您可以在 package.json
中提到的笑话部分配置 Jest:
https://github.com/timarney/react-app-rewired#2-jest-configuration---testing
package.json
- 将新的
npm script
添加到报道
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"coverage": "npm test -- --coverage",
"eject": "react-scripts eject"
}
- 并添加一个
jest config
"jest": {
"coverageThreshold": {
"global": {
"statements": 100,
"branches": 50,
"functions": 100,
"lines": 100
}
}
},
npm run coverage
你可以参考这个最新的link:Configuring threshold limit
通过将此添加到您的 package.json:
"jest": {
"coverageThreshold": {
"global": {
"branches": 75,
"functions": 75,
"lines": 75,
"statements": 75
}
}
}