2011-04-21 36 views
8

我有一个大的(ish)项目[90个文件650kb代码],我现在在Git中管理。我有一些独立的测试工具用于尝试/测试新的低级别计算,这些计算稍后会合并到主代码及其分支中(目前通过复制粘贴!)。我应该如何管理Git中的测试线束 - 他们是否应该单独购买?

管理测试线束的建议最佳做法是什么?

它们应该在单独的存储库中,还是应该在主库中创建一个空分支来启动它,或者只是创建一个“测试工具”分支并覆盖旧代码?

希望得到的好处是,主分支中的测试代码与被测试的测试代码具有明显的“相同”。

我在Windows(msysgit)上,我是在公司中使用Git的首席'探险家'。

回答

8

我在大多数项目中看到的通常结构是包含一个与src/平行的test/目录层次结构,并将它们存储在此处(在相同的回购站中)。

+0

我的'问题'的一部分也是需要复制和移动目录到一些新的文件结构。然后让Git以正确的方式接受更改。 – 2011-04-22 12:38:06

+0

我需要更新我的。gitignore并清理索引缓存,以阻止它跟踪一些临时文件,这些文件已经意外进入了测试工具[link](http://stackoverflow.com/questions/1274057/making-git-forget-about-a-file-that -was-tracked-but-is-now-gitignored/1274447#1274447) – 2011-04-22 12:41:34

1

90个文件和650KB的源代码绝对不是很大。最好将测试工具/测试套件等与源代码一起保存在同一个存储库中。检查github中的一些存储库(例如:PLY),并决定如何组织源代码和测试套件。

+0

真正添加到我看到的xtra位是GitHub协议解释[link](https://github.com/blog/530-how -we-made-github-fast),这给了我移动文件夹等的信心。正常的Git hub http视图实际上是浏览了我没有完全实现的git repo树。没有看到树枝的树枝;-) – 2011-04-22 12:54:22

1

你的文件的数量和大小在git能够保持所有的一个回购。即使你碰到了一两个数量级。因此,将它们分成两个回购站或将它们保留在单个回购站中的真正原因将与易用性有关,而不是git的技术限制。

我喜欢将测试保存在与测试代码相同的回购站中。当我更新代码以包含新功能时,我更新了单元测试,并且让两者同步是很好的。

当我添加代码修复一个缺陷并添加一个回归测试时,两者同步也很好。

随着单元和回归测试与代码同步,当我检查旧版本时,我知道捆绑测试都应该通过。任何失败,我可以归因于系统中的其他组件(比如操作系统或工具更改),这可以帮助我指出这样的事情,而不会猜测什么测试可能是“预期的失败”。

不足之处是,如果我发现我的单元测试中缺少某些东西,则不容易将其追溯添加到“应该出现”的位置。然而,我发现一个更小的缺点,然后有很多“猜测它可能是好的”失败,当检查是否有最新的四月代码与一些新的子系统或其他。

虽然您的权衡可能会有所不同。也许你的管理链没有给予足够的支持,以便在添加新功能时添加大量的单元测试,所以你可能有更高比例的想要追溯应用的测试。也许你更擅长通过某些可读属性导出功能更改,并且测试集可能无法运行预期的失败。也许你的测试是由不同的组管理的,然后是代码。任何这些可能会改变平衡。

相关问题