3

如标题所示,目前我已将我的应用程序配置为在每次执行 git push 时运行测试,

"husky": {
    "hooks": {
      "pre-push": "npm run test:unit"
    }
  }

但显然它不能很好地扩展,测试越多,推送所需的时间就越多,那么有没有一种方法可以仅在文件发生更改时触发测试?


最终我发现 Jest 有一个很好的标志,--changedSince 所以你可以在你的 package.json 文件中有这样的东西:

"test:unit": "test:unit --changedSince=@{push}"

这将只执行自上次推送以来已更改的文件的测试,与远程 HEAD 进行比较

4

1 回答 1

1

实现这一点的一个不错的选择是prepush-if-changed包。
它允许您为更改时触发挂钩的文件指定匹配模式。

  "husky": {
    "hooks": {
      "pre-push": "prepush-if-changed"
    }
  },
  "prepush-if-changed": {
    "src/**/*.js?(x)": "npm run test:unit"
  }
于 2020-09-10T15:46:24.263 回答