PHPUnit Path проблема - PullRequest
       2

PHPUnit Path проблема

1 голос
/ 11 марта 2012

Я недавно установил PHPUnit 3.6.10.

Я не понимаю, что не так с include_path в файле php.ini

используются следующие файлы php.ini

Configuration File (php.ini) Path: /etc/php5/cli
Loaded Configuration File:         /etc/php5/cli/php.ini
Scan for additional .ini files in: /etc/php5/cli/conf.d
Additional .ini files parsed:      /etc/php5/cli/conf.d/curl.ini,
/etc/php5/cli/conf.d/mysql.ini,
/etc/php5/cli/conf.d/mysqli.ini,
/etc/php5/cli/conf.d/pdo.ini,
/etc/php5/cli/conf.d/pdo_mysql.ini

другой файлApache2 использует /etc/php5/apache2/php.ini

Я изменил пути включения как в cli/php.ini, так и в apache2/php.ini

Путь включения, который я написал в php.ini:

include_path = ".:/home/username/pear/share/pear:/usr/share/php

ранее путь включения был

include_path =.: / Usr / share / php: / usr / share / pear

, но форма ошибки PHPUnit выглядит следующим образом

    PHP Warning:  require_once(PHPUnit/Framework.php): failed to open stream: No such file or directory in /home/username/public_html/PHP-Library/APITest.php on line 14
PHP Fatal error:  require_once(): Failed opening required 'PHPUnit/Framework.php' (include_path='.:/home/username/pear/share/pear') in /home/username/public_html/PHP-Library/APITest.php on line 14

Это написано в файле APITest.php

require_once 'PHPUnit/Framework.php';

Может кто-нибудь объяснить, в чем проблема?Есть ли другое место, где мне нужно внести изменения в php.ini?

Обновление

, когда я запускаю команду ниже

$ php -c /path/to/php.ini -r 'echo get_include_path()."\n";'
.:/usr/share/php:/usr/share/pear

обновление 2 Когда я удаляю require и extension PHPUnit_Framework_TestCase, я получаю следующую ошибку в журналах apache2, которые я нашел

[Sun Mar 11 14:54:58 2012] [error] [client 127.0.0.1] PHP Fatal error:  Class 'PHPUnit_Framework_TestCase' not found in /home/username/public_html/phplib/APITest.php on line 15

Ответы [ 2 ]

1 голос
/ 11 марта 2012

PHPUnit 3.6 имеет собственный автозагрузчик, который отвечает за то, чтобы все классы были доступны без использования require. Просто расширьте контрольный пример в своих тестах, не беспокоясь о PHPUnit.

class MyTest extends PHPUnit_Framework_TestCase { ... }

Обновление

При запуске ваших тестов через браузер вы пропускаете исполняемый файл phpunit, который устанавливает автозагрузчик. Добавить

require_once 'PHPUnit/Autoload.php';

к вашему index.php скрипту (или к тому, что запускает тесты).

0 голосов
/ 23 октября 2013

Мне пришлось добавить в свой php.ini следующее: / usr / share / php /

Вся строка выглядит следующим образом в /etc/php5/apache2/php.ini:

".:/usr/bin/php:/var/www/cakephp2/lib/:/var/www/cakephp2/:/usr/bin/phpunit:/usr/bin/pear:/usr/share/php/"

Чтобы выяснить, где его связать, я запустил

locate Autoload.php

Из оболочки, которая указала мне, где был установлен PHPUnit в / usr / share / php / PHPUnit, а затем посмотрел на что этопытался включить я пришел к выводу, что мне нужно добавить / usr / share / php

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