首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行lint和单元测试脚本的预提交或预推挂钩值得吗?

运行lint和单元测试脚本的预提交或预推挂钩值得吗?
EN

Software Engineering用户
提问于 2019-09-15 22:41:29
回答 2查看 1.6K关注 0票数 1

我想预提交挂钩( lint和正在运行的单元测试)的论点是,每个提交都是干净的。

反对它们的理由是,它们需要很长时间才能运行,如果您经常提交的话,这可能会加起来。

同样的情况也适用于预推钩,除非它们可能发生的频率较低。此外,如果您有连续的集成设置(运行相同的lint和测试脚本),您基本上必须等待两次,而结果几乎一直都是一样的。

EN

回答 2

Software Engineering用户

回答已采纳

发布于 2019-09-16 00:47:54

是的,也不是。

是您要在脚本中进行的操作,值得吗?

在工作中,我们在windows环境中遇到了git问题。文件系统不区分大小写,并带来各种乐趣。我们使用预提交钩子来确保所有的分支名称都是小写的。这是一次快速检查,省去了很多麻烦。

我们的post提交钩子检查以查看所针对的分支是否类似/stream/xyz。如果是的话,它也会将提交消息发送到流松弛通道,以通知那些与代码管理没有很大关系的团队成员,但是他们可能想知道已经完成的工作(经理),或者在下一个构建中可能会进行一些测试。

这是你的过程吗?

如果这是每个开发人员的期望,那么拥有较长的提交时间就不是问题。他们成功地运行了x,y和z。

类似地,您可以通过检查结果来强制执行此操作。如果结果是干净的,日期在你的项目中的所有文件之后,那么很明显,它们是运行的,并且是好的。

再一次,这可能是浪费时间和资源。也许一个专用的CI盒更好。

但是,所有这些都是挥手而不是你想要实现的过程。只有这样,您才能确定这些脚本钩子是否合适。

票数 7
EN

Software Engineering用户

发布于 2019-09-17 18:23:04

这在很大程度上取决于您的团队分支/合并和工作模型、linter规则的质量、单元测试的质量以及两者的实际运行时间。

当开发人员主要提交到他们的本地分支,或者提交或推送到一个独立的特性分支时,不干净提交对其他团队成员的影响很低,所以他们通常是可以容忍的。但是假设一个变更集直接合并到一个公共的dev分支中,或者合并到一个共享的特性分支中,然后下一个dev将不干净的更改提取到他/她的本地工作副本中。例如,当他/她注意到失败的单元测试时,这将使流程变得非常无效,因为可能不清楚根本原因是他/她自己的本地更改还是前一个合并。

如果这是您在团队中所经历的,那么预推送钩子可能是一个有用的解决方案。但是,如果这些验证的运行时间造成了麻烦,那么您应该尝试优化。也许你可以把自动测试分成一个“慢”部分,这个部分通常只在CI服务器上运行,而一个运行起来像“好”单元测试的快速部分应该运行得非常快。这可能有助于简化这一进程。

票数 2
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/398428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档