在开发代码库时,我想将其测试与实际代码有效负载分开,因为我相信当有人使用我的库时,他们只是想使用它而且他们对测试它并不感兴趣 - 测试是我的责任,而不是我的用户'。
我知道存储空间很便宜,带宽也是如此,但我的原则是不要浪费其中任何一个。
我正在考虑将所有测试代码放入一个单独的git存储库中,并将其用作主存储库中的git子模块。
这样,那些感兴趣的人仍然可以获取并执行测试,但通常在克隆主存储库时,唯一的额外文件是子模块的空目录和.gitmodules文件。
这是个好主意吗?
答案 0 :(得分:3)
当然,你可以这样做。但是子模块是一个棘手的问题,有时它们有点复杂,所以对于一些不熟悉它们的用户来说需要时间。
在我看来,您可以使用库打包测试。根据您的语言,您可以将它们放入自己的包(Java)中,这样您就可以在构建发布包时在构建脚本(Ant / Make)中将它们排除。
存储非常便宜,使用子模块是一件非常棘手的事情。此外,对于某些人(比如我)来说,运行测试是相当困难的,当你必须看看子模块是如何工作的时候会变得更加困难。另外,请记住:良好的测试也可以用作文档。
答案 1 :(得分:2)
我将实际库作为一个存储库,将测试作为另一个存储库,然后在超级项目中包含两个子模块,链接两个子模块的匹配版本。在这种情况下,只需要图书馆的用户就不需要了解测试的存在性,他们也不必以任何方式处理子模块。
熟悉子模块的用户可以克隆超级项目,如果他们也对测试感兴趣,则可以选择测试有效负载。