2009-04-27 70 views
1

我使用Bazaar进行版本控制,对此我感到非常满意。在Bazaar中,源代码管理中的每个树/项目都称为“分支”。PHP和源代码控制:在哪里放置单元测试等?

目前我有一个'主'分支的实际应用程序,以及'dev'分支,其中包含一些东西,如单元测试,以及用户手册等。这样,应用程序及其相关的测试版本,但分开。

然而,我怀疑是我做的方式是不是最好的方式。例如,如果我要从“主”分支创建发布分支,那么这些发布分支将与单元测试不同步,除非我以相同方式分支这些分支。

目前,为了创建应用程序的快照,我只是从该主分支导出所有文件并将其压缩,因为该分支的树中没有任何东西不属于将要发送的应用程序的一部分给客户。

什么是更好的方式来做我在做什么?单元测试是否应该与应用程序一起进入同一个“主”分支,如果有的话,是什么方法可以轻松创建“快照”,即等同于“每日构建”,其中只包含将与应用程序?

谢谢大家对你的答案。很难决定接受谁的答案。我已经去过的解决方案是让我的测试在我的主树的'tests'子目录中;如果我不想分发测试,我可以很容易地删除它。

回答

6

你一定要保持你的单元测试和代码尽可能接近。我们遵循的流程是这样的:

libs/Core/Login.php 
libs/Core/Process.php 
libs/Core/t/LoginTest.php 
libs/Core/t/ProcessTest.php 

基本上,创造你的代码的每个部分单元测试模块,并保存在一个子目录从真正的代码分开。然后做一些事情,找到所有的单元测试代码并在推到产品之前运行它。

+0

感谢您的回答,这是一个巧妙的建议。那么,当你发布你的应用程序(或上传到公共服务器)时,你只需删除所有't'子目录? – thomasrutter 2009-04-27 05:05:00

1

我把主代码和测试成一个分支,然后删除任何你认为是包装前多余的。

我认为与主要开发工作,让你的测试不同步的风险会抵消写一个脚本,将清除出运到客户端之前你不想包含的文件所需的工作量。仅仅因为Bazaar允许很多简单的分支并不意味着你想让你的测试离代码太远。

1

正如其他人所说,测试属于一个特定的分支。如果你的一个代码分支略有不同,它的测试应该也可能匹配..