记住在委员会之前运行测试

2024-04-23 22:01:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我们在代码上有一组不错的单元测试,这些单元测试在2分钟内运行。我们还使用TeamCity进行构建,并在每次签入后运行测试。但是,我们仍然会遇到这样的问题:开发人员“忘记”在提交之前运行所有测试,从而导致TeamCity失败,如果在下午6点完成签入,可能会在晚上中断。在

“忘记”是一个通用术语,还有一些其他常见的原因,为什么即使记得运行测试也会导致TeamCity失败。例如。在

->;开发人员只签入其工作区中的一些修改过的文件。
->;在eclipse外部修改了一个文件,这样eclipse的teamsynchronize透视图不会检测到它是脏的。在

在您的组织中,您如何处理这一问题?在

我们正在考虑为开发人员引入“check-in-procedure”,这将是一个自动工具,它将自动运行所有单元测试,然后提交工作区中的所有“脏”文件。你有过这样的经历吗?你知道有什么工具可以促进这个过程吗?我们的开发环境是Python,使用Eclipse的PyDev插件。在


Tags: 文件工具代码ingt开发人员check原因
3条回答

对于mercurial,您可以使用hook,它将运行测试,并且只允许push-on成功。但这可能需要很多时间来进行推送(但无论如何,开发人员必须运行这些测试)。在

或者您可以只拥有一组bash脚本,这些脚本将运行test,然后才运行commit命令。对于django来说,可以这样简单地提交:

^{1}$

或者还有另一种方法:若有人提交了代码,但并没有通过测试,那个么他将支付一笔费用。很快人们就会记住去测试,因为他们不会喜欢花钱的概念;-)

我在其中一个小组工作,当时我们还没有达成协议,任何人如果不通过测试,第二天早上就要给整个团队买培根三明治。它是极端的,但它的工作完美!在

我认为这更多是一个社会问题,而不是自动化系统的缺陷。在

是的,您可以在适当的地方改进系统,但是对于那些考虑到提交的含义并在执行提交之前进行测试的人来说,它们是不匹配的。在

相关问题 更多 >