用于检查更改的SVN钩子也对相应的Test类进行了更改

时间:2010-11-30 05:05:43

标签: svn unit-testing tdd hook

有没有人遇到过使用以下逻辑的SVN预提交挂钩?

如果“MyClass.java”已被修改并且正在提交,那么还必须通过命名约定对“MyClassTest.java”进行修改。

这里的目标是确保开发人员在更改了一段代码时对相应的单元测试进行了更改。

我知道只需更改一些格式就可以欺骗。但目标不是停止作弊。它非常强烈地鼓励正在转向它的团队中的测试驱动开发。

当更改只是一个重构时,奖励将是钩子忽略检查提交注释是否有单词“REFACTOR”。 (毕竟纯粹的重构应该总是自己承诺)

1 个答案:

答案 0 :(得分:1)

如果你想要实现的是单元测试的“强制执行”,我建议检查后提交(测试运行比通常的提交操作慢)如果任何类的测试覆盖率降低。甚至更多,将该检查放入您的Continuous Integration服务器。

当然,这可能会导致获取和设置的“愚蠢”测试,以获得更多的覆盖率。这可以通过分配覆盖阈值来“防止”,并且仅在达到阈值时发出警报。

通过这种方式,你可以向团队出售“如果我们犯了错误就提醒我们的机制”,而不是“如果你做错了就惩罚你的机制”。