Спасибо Раулю Дьюку за то, что он подтолкнул меня в правильном направлении, вот где я дошел до сих пор
1 - добавить корень приложения в путь включения
2 - сделать все пути включения относительно корня приложения
3 - включить файл в свои модульные тесты, который выполняет ту же функцию, но компенсирует относительное местоположение, когда он включен. Я просто использовал realpath () в каталоге с файлами.
Проблема, с которой я столкнулся сейчас, в том, что проклятая штуковина не увидит никаких дополнительных файлов, которые я пытаюсь пропустить.
Итак, я пытаюсь протестировать класс конфигурации, который будет динамически анализировать различные типы файлов. Структура каталогов выглядит следующим образом:
Application_ConfigTest.php
config.ini
Первый тест:
public function testParseFile() {
$this->assertType('array',$this->object->parseFile('config.ini'));
}
Ошибка:
failed to open stream: No such file or directory
WTF? Он находится в том же каталоге, что и тестовый класс ...
Я решил эту проблему, указав абсолютный (т.е. файловую структуру) путь к файлу конфигурации. Кто-нибудь может мне объяснить, как PHPUnit разрешает свои пути, или это потому, что сам тестовый класс включен в другом месте, делая относительные пути бессмысленными?