【问题标题】:PHP and source control: where to put unit tests, etc?PHP 和源代码控制:在哪里放置单元测试等?
【发布时间】:2009-04-27 04:55:38
【问题描述】:

我正在使用 Bazaar 进行版本控制,对此我很满意。在 Bazaar 中,源代码管理中的每个树/项目都称为“分支”。

目前我有一个用于实际应用程序的“主”分支,以及一个包含单元测试和用户手册等内容的“开发”分支。这样,应用程序及其相关测试都是版本化,但分开。

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

目前,为了创建应用程序的快照,我只是从该主分支导出所有文件并将它们压缩,因为该分支的树中没有任何不属于应用程序的内容将被发送到客户。

什么是做我正在做的事情的更好方法?单元测试是否应该进入与应用程序相同的“主”分支,如果是这样,有什么方便的方法可以轻松创建“快照”,即相当于“每日构建”,仅包含将分发的文件应用程序?

谢谢大家的回答。很难决定接受谁的回答。我采用的解决方案是将测试放在主树的“测试”子目录中;如果我不想分发测试,我以后可以轻松地将其删除。

【问题讨论】:

    标签: php unit-testing version-control bazaar


    【解决方案1】:

    您肯定希望您的单元测试和代码尽可能接近。我们遵循的流程是这样的:

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

    基本上,为代码的每个部分创建一个单元测试模块,并将其与实际代码分开,将其保存在子目录中。然后进行一些检查,找到所有单元测试代码并在投入生产之前运行它。

    【讨论】:

    • 感谢您的回答,这是一个很好的建议。那么,当您发布您的应用程序(或上传到公共服务器)时,您是否只是去掉了所有的 't' 子目录?
    • 我们将它们放在一起,但我认为有必要将其剥离。
    【解决方案2】:

    我会将主要代码和测试放在一个分支中,然后在打包之前删除您认为多余的任何内容。

    我认为让您的测试与主要开发工作不同步的风险将抵消编写脚本所需的工作,该脚本将在交付给客户之前清除您不希望包含的文件。仅仅因为 Bazaar 允许许多简单的分支并不意味着您想让您的测试离代码太远。

    【讨论】:

      【解决方案3】:

      正如其他人所提到的,测试属于特定的分支。如果您的代码分支之一略有不同,它的测试也应该与之匹配..

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-03-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-31
        相关资源
        最近更新 更多