PHPUnit不';无法识别文件_存在()
我已经在NetBeans中设置了一个带有单元测试文件的项目。我将引导设置为PHPUnit不';无法识别文件_存在(),php,netbeans,phpunit,Php,Netbeans,Phpunit,我已经在NetBeans中设置了一个带有单元测试文件的项目。我将引导设置为C:\www\foo\\u tests\TestAutoload.php,并将简单的自动加载方法放入该文件: function __autoload( $class_name ) { // series of ifs if ( ... ) { $file_name = ... } if ( file_exists ( $file_name ) ) { req
C:\www\foo\\u tests\TestAutoload.php
,并将简单的自动加载方法放入该文件:
function __autoload( $class_name ) {
// series of ifs
if ( ... ) {
$file_name = ...
}
if ( file_exists ( $file_name ) ) {
require_once( $file_name );
} else {
echo "autoload error";
}
}
我所有的测试都以这种方式自动加载失败。它们总是只输出“自动加载错误”。如果我不检查file\u是否存在
,只需使用一次require\u($file)
,无论$file
中有什么,它都能正常工作
以前有人遇到过这样的事情吗?这不是我无法通过简单地不检查文件是否存在来解决的问题,但我感兴趣的是它为什么会这样做,以及我是否能够以某种方式欺骗它。如果绝对文件名不存在,您可能想尝试对绝对文件名使用file\u exists(),例如
file\u exists($file\u name)
可能是file\u exists(dirname(\uuuu FILE\uuuu)。“/../myclasses/.$FILE\u name)
,因为(根据安非他明机器的回答),不使用PHP的包含路径设置。来自:
请注意:如果将相对路径传递给文件_exists,它将返回false,除非该路径恰好与“当前PHP目录”相对(请参见chdir()
在file\u exits函数中指定绝对路径,该函数中的文件路径可能不正确。您使用的是什么?$file\u名称是完整路径还是相对路径?我原以为是绝对路径,但实际干扰使其成为相对路径:)请,请看我对平戈西奇回答的评论。你为我指明了正确的方向。问题是,我在autoload中使用了$\u SERVER[“DOCUMENT\u ROOT”],这是一个空字符串,因为PHPUnit正在CGI中运行,因此导致将相对路径传递到文件\u exists中。现在我正在解析我自己的“文档根”,它工作得非常好!