1

我有一个 Angular 8 项目,我正在尝试设置一个用户无法提交的情况,除非某些百分比的代码覆盖率通过。

我正在使用 NX Workspace 和 Husky 在提交之前运行 Linting。我想在此之上运行 ng 测试,以及我可以提供数字的覆盖率测试。如果所有三个都通过,则提交代码。

我现在有这个 package.json 文件。我该如何添加?

  "scripts": {
    "ng": "ng",
    "nx": "nx",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "nx workspace-lint && ng lint",
    "e2e": "ng e2e",
    "affected:apps": "nx affected:apps",
    "affected:libs": "nx affected:libs",
    "affected:build": "nx affected:build",
    "affected:e2e": "nx affected:e2e",
    "affected:test": "nx affected:test",
    "affected:lint": "nx affected:lint",
    "affected:dep-graph": "nx affected:dep-graph",
    "affected": "nx affected",
    "format": "nx format:write",
    "format:write": "nx format:write",
    "format:check": "nx format:check",
    "update": "ng update @nrwl/workspace",
    "update:check": "ng update",
    "workspace-schematic": "nx workspace-schematic",
    "dep-graph": "nx dep-graph",
    "help": "nx help",
    "storybook": "start-storybook -p 6006",
    "build-storybook": "build-storybook"
  },
  "husky": {
    "hooks": {
      "pre-commit": "npm run affected:lint"
    }
  },

...
4

1 回答 1

0

您应该能够制作一个单独的脚本来读取测试脚本的标准输出,以使用正则表达式提取覆盖率。

然后它将百分比存储在一个变量中,并将其与最小覆盖量进行比较,以设置适当的错误级别,然后返回给 git。

脚本文件将由 husky 运行。

例如

usr_coverage=12; # store the extracted coverage here
min_coverage=10;

if [ $usr_coverage -lt $min_coverage]; then
    echo "Coverage is too low.";
    exit 1;
fi
exit 0
于 2021-01-22T22:01:36.010 回答