Directory layout for PHPUnit tests?我是从事PHP项目的长期Java程序员,并且正在尝试使PHPUnit正常工作。 使用Java进行单元测试时,通常将测试用例类和常规类放在单独的目录中,如下所示-
等等。 使用PHPUnit进行单元测试时,遵循相同的目录结构是常见的做法,还是有更好的方法来布置测试类? 到目前为止,我可以使" include(" MyClass.php")"语句正常工作的唯一方法是将测试类包含在同一目录中,但是当我按入时,我不想包含测试类。 生产。 我认为将文件分开是个好主意。我通常使用这样的文件夹结构:
在您的情况下,为什么要将类包含在测试文件中,为什么不将整个路径传递给include方法呢?
要么
您需要修改PHP的include_path,以便在单元测试中 在测试文件的顶部(包含之前),您可能会有类似的内容:
这会将您的 根据我的经验,布莱恩·菲利普斯(Brian Phillips)的回答还远远不够。当您由PHPUnit运行测试时,您不知道当前目录是什么。因此,您需要在set_include_path()表达式中引用测试类文件的绝对路径。像这样:
可以将此片段放在其自己的头文件SetupIncludePath.php中,并使用" require_once"将其包含在测试文件中,以便测试套件不会多次追加路径。 我将测试用例放在源的旁边,并放在一个具有相同名称但扩展名为.phpt的文件中。部署脚本在推入生产时仅过滤掉* .phpt。 |