And*_*rea 5 git husky git-husky
如标题所示,目前我已将我的应用程序配置为每次执行 git Push 时运行测试,
"husky": {
"hooks": {
"pre-push": "npm run test:unit"
}
}
Run Code Online (Sandbox Code Playgroud)
但显然它的扩展性不好,测试越多,推送所需的时间就越长,那么有没有一种方法可以仅在文件发生更改时才触发测试?
最终我发现 Jest 有一个很好的标志叫做--changedSince
,所以你可以在你的 package.json 文件中包含类似这样的东西:
"test:unit": "test:unit --changedSince=@{push}"
只会执行自上次推送以来已更改的文件的测试,与远程 HEAD 进行比较
实现此目的的一个不错的选择是prepush-if-changed包。
它允许您为文件指定匹配模式,以便在更改时触发挂钩。
"husky": {
"hooks": {
"pre-push": "prepush-if-changed"
}
},
"prepush-if-changed": {
"src/**/*.js?(x)": "npm run test:unit"
}
Run Code Online (Sandbox Code Playgroud)