PHPUnit无法识别file_exists()

时间:2010-04-06 12:24:30

标签: php netbeans phpunit

我在NetBeans中设置了一个包含单元测试文件的项目。我将bootstrap设置为C:\www\foo\_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_exists是否只使用require_once( $file ),无论$file中的内容是什么,它都能完美运行。

之前有人遇到过这样的事吗?这不是我无法解决的问题,只是不检查文件是否存在,但我很感兴趣为什么会这样做,如果我能以某种方式欺骗它。

3 个答案:

答案 0 :(得分:4)

来自PHP Manual page for file_exists

  

请注意:如果您传递一个相对路径到file_exists,它将返回false,除非该路径恰好相对于“当前PHP目录”(请参阅​​chdir())。

答案 1 :(得分:2)

您可能想尝试在绝对文件名上使用 file_exists(),如果它们不是,例如file_exists($file_name)可能是file_exists(dirname(__FILE__) . '/../myclasses/' . $file_name),因为(根据amphetamachine的回答), file_exists() 不使用PHP的include_path设置。

答案 2 :(得分:1)

在file_exits函数中给出绝对路径,它可能在file_exits函数中的文件路径不正确你有什么worte