0

我的问题很简单:

  • 我正在使用 Husky 处理 git hooks
  • 我已经配置了一个运行 2 个脚本的预推送挂钩:

    "prepush": "npm-run-all --parallel lint test"

  • 它在单推上正常工作

  • 但是当我尝试推送 2 个或更多分支时,它没有检测到失败的脚本。

例如,假设我创建了 2 个分支:

1) 功能/分支-1

2) 功能/分支 2

  • 分支 1 包含 lint 问题,分支 2 是干净的(没有测试失败/没有 lint 问题)
  • 我结帐到分支 2 并推送两个分支(在我的例子中使用 SourceTree)。

Husky prePush scrit 被调用,但 lint 脚本没有失败(如果我只推送那个分支时它失败了)。

我正在使用赫斯基 0.14.3

4

1 回答 1

1

您不能在当前不在的分支上运行测试。
如果你是 onfeature/branch-2并且 push feature/branch-1,那么 githook 将正常触发并运行。但是您的应用程序在文件系统上的当前状态是feature/branch-2,因此测试将通过。
在推送之前,您需要检查要推送的分支。

另一种方法是运行测试pre-commit,这样您将始终位于正确的分支上。
或者做一些脚本来检查正确的分支,运行测试,推送并让你回到你之前的分支。虽然可能,但可能有点过度设计。

于 2018-04-05T15:09:36.843 回答