2016-01-21 49 views
1

在开发代码库时,我想将其测试与实际代码有效载荷分开,因为我相信当有人使用我的库时,他们只是想使用它,而他们对测试不感兴趣 - 测试是我的责任,不是我的用户。Git子模块不是强制库用户下载测试的好主意吗?

我知道存储空间便宜,带宽也很便宜,但我的原则是不要浪费他们两个。

我想把所有的测试代码放到一个单独的git仓库中,并将它用作主仓库中的git子模块。

这样,感兴趣的人仍然可以获取并执行测试,但通常在克隆主存储库时,唯一的额外文件是子模块的空目录和.gitmodules文件。

这是个好主意吗?

回答

2

我将实际的库作为一个存储库,并将测试作为另一个存储库,然后将两个子模块作为超级项目包含在两个子模块的匹配版本中。在这种情况下,只需要图书馆的用户不需要知道测试的实际情况,也不需要以任何方式处理子模块。

熟悉子模块的用户可以克隆超级项目,如果他们也对测试感兴趣,使测试负载可选。

+0

我喜欢你的想法,谢谢! – Wabbitseason

3

当然,你可以这样做。但子模块是一件棘手的事情,有时它们有点复杂,所以对于一些不熟悉它们的用户来说需要时间。

在我看来,你可以将你的测试打包到库中。根据您的语言,您可以将它们放入自己的包(Java)中,以便在构建发行包时在构建脚本(Ant/Make)中排除它们。

存储是非常便宜,使用子模块是一件非常棘手的事情。而且,对于一些人(比如我)来说,运行测试是一种相当的克服,当你必须看到子模块的工作方式时,它变得更加困难。另外,请记住:良好的测试也可以用作文档。

相关问题