phpunit:无法打开文件";FILENAME.php";使用引导运行时

phpunit:无法打开文件";FILENAME.php";使用引导运行时,php,phpunit,Php,Phpunit,我在错误的服务器中创建了一个新的composer项目,我有以下目录结构: PROJNAME (dir) --PROJNAME.php (my project file) tests (dir) --PROJNAMETest.php 我一直在运行以下命令,该命令在错误的服务器上运行: vendor/bin/phpunit --bootstrap PROJNAME.php --testdox tests/ 但是在将文件移动到正确的服务器(使用scp-r、删除供应商目录并执行com

我在错误的服务器中创建了一个新的composer项目,我有以下目录结构:

 PROJNAME (dir)
  --PROJNAME.php (my project file) 
  tests (dir)
  --PROJNAMETest.php
我一直在运行以下命令,该命令在错误的服务器上运行:

vendor/bin/phpunit --bootstrap PROJNAME.php --testdox tests/
但是在将文件移动到正确的服务器(使用scp-r、删除供应商目录并执行composer安装)后,我得到错误:

Cannot open file "PROJNAME.php".
Cannot open file "PROJNAME.php".
但是,当我在没有--bootstrap PROJNAME.php的情况下运行时,它不会出错!我不明白

以下是PROJNAME.php的内容:

<?php

require 'vendor/autoload.php';


function DummyMethod(){
}
?>
因为我使用root用户,所以我不认为权限是可能的原因

请告诉我是什么导致了这一切

谢谢

我得到一个错误:

Cannot open file "PROJNAME.php".
Cannot open file "PROJNAME.php".

但是,当我在没有--bootstrap PROJNAME.php的情况下运行时,它不会出错!我不明白

错误消息“无法打开文件…”是故意的。该信息可以理解为:

无法打开引导文件

在Phpunit测试套件中,几乎所有内容都是先加载的,它是为了建立测试的最低限度的项目设置。该错误只是表明无法打开引导文件

请记住,您使用的是引导文件的相对路径,因此您需要注意,结合测试运行程序的工作目录(调用),可以解析为正确的(可读的)引导文件。除非不是,否则您将看到此错误。这个错误是故意的,不能打开引导文件是你想知道的事情

只需登录到正确的服务器,切换到引导文件的目录,并在该目录中执行testsuite。它应该可以工作(除非您不能以文件系统中的用户身份打开文件)

要克服系统差异,请创建一个具有引导文件属性的
phpunit.xml
.dist
)文件,并使用该配置文件执行测试套件。将其置于版本控制之下,以便以更明确、更稳定的方式管理配置和设置


但首先要找出文件无法打开的原因。

服务器“错误”了?好吧,今天我重新连接到开发服务器,它正常工作,不再出现这种错误了!我说不出原因。。也许重新登录服务器设置了一些环境变量,我不知道@哈克雷:你能至少解释一下引导“PROJNAME.php”和不引导运行之间的区别吗?我用它来确保在测试用例运行之前加载文件。。。真的需要吗?之后,我将接受您的答案作为解决方案,我猜:)在测试套件运行之前,将引导程序视为包含的PHP包含文件。这允许您按照您认为合适的方式设置PHP环境,例如初始化自动加载程序等。如果您不需要引导文件(您的测试套件是w/o工作的),那么您就不需要使用它。如果您不需要,请不要使用它,以便以后需要时可以使用它:)-在基于composer的项目中,一个常见的用例是使用
vendor/autoload.php
文件作为引导。