У меня PHPUnit настроен в моем проекте PHPStorm. Я ссылаюсь на phar файл PHPUnit и имеет исполняемый файл PHP, связанный с моей конфигурацией запуска PHPStorm. Моя структура каталогов выглядит так:
/lib/classes/Class.php
/lib/vendor/phpunit.phar
/lib/test/ClassTest.php
В моем файле ClassTest.php
я ClassTest.php
на два других файла:
require_once (__DIR__ . "../vendor/phpunit.phar");
require_once (__DIR__ . "../classes/Class.php");
При выполнении теста я получаю следующую ошибку:
Fatal error: require_once(): Failed opening required
'C:\Users\me\PhpstormProjects\myproject\lib\tests../vendor/phpunit.phar'
Похоже, что парсер PHP не правильно разбирает одну директорию ../
.
Почему это происходит?
Прежде всего: эта строка не нужна (вообще), поскольку PHPUnit уже будет загружен в то время.
require_once (__DIR__ . "../vendor/phpunit.phar");
Во-вторых: константа __DIR__
в PHP не содержит конечной косой черты. При использовании в операторах require/include (и других местах при создании полного пути к файлу) вы должны добавить его самостоятельно.
В вашем конкретном случае это должно быть (примечание /
до ..
):
require_once (__DIR__ . "/../classes/Class.php");
tests/../vendor
вместоtests../vendor
?