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

时间:2019-06-28 10:53:55

标签: git jestjs code-coverage istanbul nyc

我在ReactJS项目中使用jest和istanbul编写测试用例并检查测试范围。

如何确保使用预提交钩子来测试我暂存为git的任何文件的覆盖率,而不会使它在提交前的当前值下降?

1 个答案:

答案 0 :(得分:1)

您应该查看笑话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 stagedhusky结合使用以进行预提交检查。

最后,您的package.json看起来像这样:

{
  ...package.json
  "husky": {
    "hooks": {
      "pre-commit": "jest",
    }
  }
}