PHPUnit и Yii на общем сервере - PullRequest
       10

PHPUnit и Yii на общем сервере

0 голосов
/ 13 ноября 2010

Я установил PHPUnit и проверил мои настройки PEAR, и все прошло нормально.Я использую Yii в качестве фреймворка и нахожусь на общем сервере linux.Когда я запускаю тест (любой тест), я получаю ошибки ниже.Из того, что я могу сказать, я думаю, что мне нужно добавить следующее в мои настройки пути:

/home/myname/php/  

, поскольку именно там расположены и папки PHP, и PHPUnit.Я не могу изменить файл php.ini, так как я нахожусь на общем сервере.Мне интересно, если это действительно проблема, и если кто-то еще нашел и исправил эту проблему в общей среде?

/protected/tests/unit]# phpunit dbTest.php
X-Powered-By: PHP/5.2.9
Content-type: text/html

<br />
<b>Warning</b>:  require_once(PHPUnit/Util/Filter.php) [<a href='function.require-once'>function.require-once</a>]: failed to open stream: No such file or directory in /home/myname/bin/phpunit on line 40<br />
<br />
<b>Fatal error</b>:  require_once() [<a href='function.require'>function.require</a>]: Failed opening required 'PHPUnit/Util/Filter.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/myname/bin/phpunit on line 40

Ответы [ 3 ]

1 голос
/ 24 ноября 2010

После долгих испытаний и скорбей я понял это. Надеюсь, это поможет кому-то еще.

Поскольку я на общем сервере, я не могу настроить include_path. Он также не будет работать с использованием файла .htaccess, поскольку phpunit запускается из командной строки и не вызывает файл .htaccess. Поэтому установка пути включения в .htaccess бесполезна, если у вас возникают те же проблемы, что и у меня с phpunit.

Единственный путь, с которого я теперь могу запускать тесты phpunit - это / home / myname / php. Это потому, что мои файлы PHPUnit автоматически устанавливаются в /home/myname/php/PHPUnit.

При запуске теста phpunit из / home / myname / php я получаю сообщение об ошибке

File &quot;/home/... &quot; could not be found

В этот момент я обнаружил, что мне нужно обновить PHPUnit, что, в свою очередь, обновило ряд его зависимостей (CodeCoverage, Selenium и другие). Команда для обновления phpunit была

pear upgrade phpunit/PHPUnit

Теперь я могу успешно запускать тесты из папки / home / myname / php, и это работает. Если я запускаю тесты из какой-либо другой папки, она не работает, потому что она ищет в каталогах include_path, и / home / myname / php не является одним из этих путей.

0 голосов
/ 16 ноября 2010

Джо, попробуйте добавить / home / myname / php / к своему пути, например:

export PATH=/home/myname/php/:$PATH

Также посмотрите на http://php.net/set_include_path

0 голосов
/ 13 ноября 2010

проверьте, что ваш PHPUnit существует в / usr / lib / php / PHPUnit, иначе вы должны включить ваш путь для PHPUnit в ваш PHP.ini.

проверить загруженный файл конфигурации (PHP.ini) вы используете с

php --ini

поместите каталог PEAR в строку "include_path".

...