Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing DVCS回购协议布局和单元测试_Unit Testing_Mercurial_Repository_Dvcs - Fatal编程技术网

Unit testing DVCS回购协议布局和单元测试

Unit testing DVCS回购协议布局和单元测试,unit-testing,mercurial,repository,dvcs,Unit Testing,Mercurial,Repository,Dvcs,单元测试是否应包含在与测试代码相同的回购协议中? 或者他们应该在自己的回购协议中 我的对比思考: 一方面,测试代码不应该与生产代码位于同一棵树中;另一方面,单一回购协议应该是独立的。(虽然我承认我对DVCS总体来说还是比较陌生的,更确切地说,是Mercurial)。如果您有一组不同的文件紧密链接在一起(也就是说,您不能在不更改另一个文件的情况下更改一个文件),那么这两组文件属于同一个存储库 这样,相同的标签适用于两者,并且它们总是同步的 “生产代码”只是对开发生命周期中某个阶段的描述:请参阅。

单元测试是否应包含在与测试代码相同的回购协议中?
或者他们应该在自己的回购协议中

我的对比思考:

一方面,测试代码不应该与生产代码位于同一棵树中;另一方面,单一回购协议应该是独立的。(虽然我承认我对DVCS总体来说还是比较陌生的,更确切地说,是Mercurial)。

如果您有一组不同的文件紧密链接在一起(也就是说,您不能在不更改另一个文件的情况下更改一个文件),那么这两组文件属于同一个存储库

这样,相同的标签适用于两者,并且它们总是同步的

“生产代码”只是对开发生命周期中某个阶段的描述:请参阅。

这并不妨碍使用其他相关的代码集(如单元测试)。

谢谢,但我发现这有两个问题:
如果您有不同的文件集,并且这些文件之间有很强的链接。。。属于同一个存储库
这排除了对单个组件进行单独回购的可能性-我认为这是DVCS的最佳实践,不是吗?第二,这与我困境的第一部分无关,测试代码应该是分开的——不是因为生命周期阶段,而是“不需要部署的代码”。也就是说,所有支持代码,如测试代码、构建工具等,都应该在“真实”代码树之外。@Avid:“单个组件”,这里的关键字是“单个”。如果你不能在不改变另一套的情况下改变其中一套,那么这些就不再是“个人的”了;)我不认为像VCS那样的源代码数据库可以作为部署的候选:不部署代码。您部署交付(工件:代码的编译版本、配置文件等)。。。我指的是构建然后部署的代码。“个人”,共享组件如何,其他回购协议的代码引用了哪些?共享组件应该在它自己的repo中,但是如果您更改它,您可能还需要更改依赖代码。不我遗漏了什么?@AviD:你只需要代码数据库的“正确”子集(即没有任何单元测试代码的子集)就可以轻松构建你的工件。对于共享组件,它可以在自己的repo。。。很抱歉,我想我还不清楚我的问题:对SharedComponent的更改可能需要对其他代码进行更改,但它仍然处于一个单独的repo中-与您所说的“如果对一个组件的更改导致对另一个组件的更改,那么它们应该处于相同的repo中”相反。