git - 如何运行 git pre-commit Hook 以强制暂存文件的测试覆盖率不会降低?

标签 git jestjs code-coverage istanbul nyc

我在我的 ReactJS 项目中使用 jest 和 istanbul 来编写测试用例并检查测试覆盖率。

如何确保使用预提交 Hook 来测试我已暂存到 git 的任何文件的覆盖率不会从提交前的当前值减少?

最佳答案

您应该查看 jest from here 的 coverageThreshold 文档

以下选项可用于全局覆盖阈值和文件名模式阈值。

{
  ...
  "jest": {
    "coverageThreshold": {
      "global": {
        "branches": 50,
        "functions": 50,
        "lines": 50,
        "statements": 50
      },
      "./src/components/": {
        "branches": 40,
        "statements": 40
      },
      "./src/reducers/**/*.js": {
        "statements": 90
      },
      "./src/api/very-important-module.js": {
        "branches": 100,
        "functions": 100,
        "lines": 100,
        "statements": 100
      }
    }
  }
}

您可以将其与 lint staged 结合使用和 husky进行预提交检查。

最后,您的 package.json 将如下所示:
{
  ...package.json
  "husky": {
    "hooks": {
      "pre-commit": "jest",
    }
  }
}

关于git - 如何运行 git pre-commit Hook 以强制暂存文件的测试覆盖率不会降低?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56805649/

相关文章:

selenium - 比较测试覆盖率指标以确定实现自动化后的增加/减少

junit - eclemma - 如何忽略源

java - 如何在 grails 2.3.x 中禁用 groovy 优化

Git rebase 或 merge

git - 使用远程主机 gitlab 从 Windows 部署 capifony 时权限被拒绝(公钥)

Git参数管道脚本

jestjs - 无法使用 ts-jest 转换 node_modules 中的文件夹

reactjs - 我什么时候应该使用快照测试?

git - 远程git repo和svn之间无休止的冲突

vue.js - 如何对将 DOM 元素附加到 HTML 主体的 Vue 组件进行单元测试?