在存储库中存储测试数据的位置?

时间:2012-04-23 07:38:53

标签: git unit-testing svn version-control

我有一个分析图像的项目。该项目的测试数据 - 大约15 GB的图像。问题:在哪里存储这样的测试数据,假设需要存储多个版本,大部分开发人员都需要这些数据?

在与代码相同的存储库中?在具有外部引用的单独存储库中?

4 个答案:

答案 0 :(得分:10)

我同意其他答案,将这么多测试数据保存在您的存储库中是一个坏主意。但是,有几个系统可以方便地从git存储库外部引用(和下载)大数据:

我担心自己没有用于任何严肃的目的,但它们听起来似乎是你想要的合理解决方案。

答案 1 :(得分:3)

您需要将它们存储在单独的参考中,更适合这些文件。

使用Nexus之类的工件存储库作为proposed here 在您的DVCS回购中添加从Nexus获得正确版本所需的脚本。

这样,您可以快速轻松地克隆,并在需要时从第二个参考中下载二进制文件。

答案 2 :(得分:2)

如果开发人员或想要运行测试的人员只需要这些图像,我可能会将它们放在子模块中,因为它们看起来相当大......

答案 3 :(得分:2)

有很多选项,但是您应该注意将任何解决方案正确地集成到您的git存储库中。

Git是修订控制系统,更确切地说,它存储了项目快照列表。每个快照代表您在某个特定时间点的项目。

无论您选择哪种解决方案,项目都应该可以提取项目历史记录中任何快照中存在的测试数据。

例如,如果每个图像永久存在于固定的URL中,则您的git项目可以只存储包含所有URL的文本文件。在运行时,让脚本获取每个图像。随着项目的发展以及在测试集中添加或删除图像,请不要更改现有的URL方案。更新指针文件并提交。

另一个好主意可能是在每个URL上记录图像的 md5 sha1 哈希值。您的下载脚本应该在运行时进行比较以检查,因此您可以收到任何不一致的警报。