我在哪里将我的单元测试文件存储在我的php项目中?

时间:2010-10-29 15:40:35

标签: php version-control architecture

我在subversion中有一个php项目,具有典型的/project/trunk//project/test//project/branches/结构。我想开始用PHPUnit编写一些单元测试。在版本控制中存储这些文件的好地方在哪里?

如果我把它们放在/project/unittests/中,我将不得不检查他们并行测试的目录,所以我必须确保我做得正确,这有点麻烦。如果我将它们保留在项目中,比如/project/trunk/unittests/,那么当我部署网站时它们会在那里,除非我有一些额外的钩子不能导出它们,或者至少确保我的.htaccess不允许为他们服务。

3 个答案:

答案 0 :(得分:3)

我将它们存储在我的项目目录中,而不是存储在单独的svn目录中,因为unittests与项目状态直接相关,并且可能因州而异。您应该注意它们不能通过Web访问。

例如,对于每个状态,我的结构看起来像这样(使用zend框架),web是唯一可通过Web访问的目录:

  • 应用程序(控制器,配置)
  • 图书馆(zend图书馆,自己的图书馆)
  • unittests(unittests;)
  • web(index.php,.htaccess,图片和其他无法执行的内容)
  • 日志

答案 1 :(得分:1)

你可以把它们放在任何地方。就个人而言,我总是这样设置我的项目:

 project
   |-- trunk/
   |     |-- ... Other directory
   |     `-- tests
   |-- branches
   |     `-- development
   `-- tags

当我将trunk合并到开发分支时,我不提交“trunk / tests”目录。

这样,使用开发分支创建的任何标记都不包含测试。

答案 2 :(得分:1)

我会将单元测试与其余代码放在一起。当然在一个单独的文件夹中,但它应该与您正在处理的分支。我没有看到将它们部署到生产中的问题。您可能希望在生产中运行测试以确保所有内容都与生产php版本一起使用。