如果测试覆盖率低于一定百分比,如何停止提交?
How to stop a commit if test coverage is below a certain percentage?
我正在使用 Jest 来测试 NestJS 应用程序,我正在尝试创建一个 git 带有 husky 的挂钩,如果测试覆盖率低于 95%,它将不允许提交,我还没有尝试过任何东西,因为我真的不知道如何正确地描述我的问题。
但为了更清楚,我需要的是一个 git 钩子,就像这样:
#!/bin/sh
. "$(dirname "[=10=]")/_/husky.sh"
npm run format
npm run lint
npm run test
git add -u
create a git hook with husky that will not allow a commit if tests coverage are under 95%
看来你已经在 husky 上有一个测试挂钩,如果那个 npm run test
正在使用 Jest,就像我假设的那样,你需要做的就是在你的 [=14] 中添加一个 Jests 配置=].
打开 package.json
并搜索 属性 比如:
"jest": {
这是您放置 Jest 配置参数的地方。
只需向其中添加以下属性:
"collectCoverage": true,
"coverageThreshold": {
"global": {
"lines": 95
}
}
您将要将 lines
属性 值更改为您想要的任何百分比。
附带说明一下,我很确定这是默认的 Jest 配置,但您还需要 select 您想要 运行 测试覆盖率分析的文件夹和文件,因为您已经有一个测试挂钩你可能已经有了这个,但只是为了确保:
"collectCoverageFrom": [
"./src/**/*.(t|j)s"
],
这将 运行 对 /src 目录中的每个文件(.JS 或 .TS)进行覆盖率测试。
现在,每当您提交某些内容或尝试 运行 npm run test
时,它还会 运行 测试覆盖率并在低于 selected 值时阻止提交。
我正在使用 Jest 来测试 NestJS 应用程序,我正在尝试创建一个 git 带有 husky 的挂钩,如果测试覆盖率低于 95%,它将不允许提交,我还没有尝试过任何东西,因为我真的不知道如何正确地描述我的问题。 但为了更清楚,我需要的是一个 git 钩子,就像这样:
#!/bin/sh
. "$(dirname "[=10=]")/_/husky.sh"
npm run format
npm run lint
npm run test
git add -u
create a git hook with husky that will not allow a commit if tests coverage are under 95%
看来你已经在 husky 上有一个测试挂钩,如果那个 npm run test
正在使用 Jest,就像我假设的那样,你需要做的就是在你的 [=14] 中添加一个 Jests 配置=].
打开 package.json
并搜索 属性 比如:
"jest": {
这是您放置 Jest 配置参数的地方。 只需向其中添加以下属性:
"collectCoverage": true,
"coverageThreshold": {
"global": {
"lines": 95
}
}
您将要将 lines
属性 值更改为您想要的任何百分比。
附带说明一下,我很确定这是默认的 Jest 配置,但您还需要 select 您想要 运行 测试覆盖率分析的文件夹和文件,因为您已经有一个测试挂钩你可能已经有了这个,但只是为了确保:
"collectCoverageFrom": [
"./src/**/*.(t|j)s"
],
这将 运行 对 /src 目录中的每个文件(.JS 或 .TS)进行覆盖率测试。
现在,每当您提交某些内容或尝试 运行 npm run test
时,它还会 运行 测试覆盖率并在低于 selected 值时阻止提交。