PHPUnit не распознает file_exists () - PullRequest
2 голосов
/ 06 апреля 2010

Я настроил проект с файлами модульного тестирования в NetBeans. Я установил для начальной загрузки значение 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 ]

4 голосов
/ 06 апреля 2010

Со страницы PHP Manual для file_exists:

Имейте в виду: если вы передадите относительный путь к file_exists, он вернет false, если только этот путь не относится к «текущему каталогу PHP» (см. Chdir ()).

2 голосов
/ 06 апреля 2010

Возможно, вы захотите попробовать использовать file_exists () для абсолютных имен файлов, если их нет, например, file_exists($file_name) может быть file_exists(dirname(__FILE__) . '/../myclasses/' . $file_name), поскольку (согласно ответу амфетамина) file_exists () не использует параметр include_path PHP.

1 голос
/ 06 апреля 2010

дает абсолютный путь в функции file_exits, возможно, путь к файлу неверен в этой функции file_exits, что у вас есть

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...