Ошибка phpunit require_once()

Недавно я установил phpunit на свой сервер через установщик груши.

Когда я иду запускать тест, я получаю следующую ошибку:

PHP Предупреждение: require_once (PHPUnit/Util/Filter.php): не удалось открыть поток: такой файл или каталог в /usr/bin/phpunit в строке 44

PHP Неустранимая ошибка: require_once(): Ошибка открытия PHPUnit/Util/Filter.php(include_path = '.:/usr/bin/php') в /usr/bin/phpunit в строке 44

После выполнения некоторого поиска я попытался внести некоторые изменения в include_path в файл php.ini на сервере. Но это ничего не сделало.

Любая идея, что может быть причиной этого?

Ответ 1

ОБНОВЛЕНИЕ: по состоянию на 2013 год и Ubuntu 12.04 этих двух команд должно быть достаточно:

sudo pear config-set auto_discover 1
sudo pear install pear.phpunit.de/PHPUnit

Ниже приведен более старый ответ. Это известная проблема, хотя прошло почти полтора года. Читайте об этом здесь.

Покрытие кода должно быть установлено для корректной работы phpunit

Что вам нужно сделать, здесь описано:

установка покрытия кода через PEAR

В принципе, вам нужно набирать (с помощью sudo, если у вас нет разрешений, если этот phpunit уже установлен):

pear channel-discover pear.phpunit.de
pear channel-discover components.ez.no
pear install phpunit/PHP_CodeCoverage

Ответ 2

У меня была эта проблема в OS X. Исправлена ​​ее с помощью следующих команд, которые заставляют переустанавливать все зависимости php, в том числе пару пакетов из других каналов, которые еще не были настроены:

sudo pear channel-discover pear.symfony-project.com
sudo pear channel-discover components.ez.no
sudo pear install --alldeps phpunit/PHPUnit

Ответ 3

https://bugs.launchpad.net/ubuntu/+source/phpunit/+bug/701544

и специально этот комментарий для ubuntu 11.04 и может быть для некоторых других тоже

хотя я сделал шаги, как было рекомендовано выше, я не получил его работать, но после того, как я обновил грушу с 1.9.1 до 1.9.2, она отлично работает, просто сделайте это

speshu @speshu-laptop: ~ $sudo pear upgrade pear

   downloading PEAR-1.9.2.tgz ...
   Starting to download PEAR-1.9.2.tgz (295,120 bytes)
    .....................................................done: 295,120 bytes
    upgrade ok: channel://pear.php.net/PEAR-1.9.2
    PEAR: Optional feature webinstaller available (PEAR web-based installer)
    PEAR: Optional feature gtkinstaller available (PEAR PHP-GTK-based installer)
    PEAR: Optional feature gtk2installer available (PEAR PHP-GTK2-based installer)
    PEAR: To install optional features use "pear install pear/PEAR#featurename"

Ответ 5

https://github.com/sebastianbergmann/php-code-coverage

[email protected] ~ % pear channel-discover pear.phpunit.de
Adding Channel "pear.phpunit.de" succeeded
Discovery of channel "pear.phpunit.de" succeeded

[email protected] ~ % pear channel-discover components.ez.no
Adding Channel "components.ez.no" succeeded
Discovery of channel "components.ez.no" succeeded

[email protected] ~ % pear install phpunit/PHP_CodeCoverage
downloading PHP_CodeCoverage-0.9.0.tgz ...
Starting to download PHP_CodeCoverage-0.9.0.tgz (108,376 bytes)
.........................done: 108,376 bytes
install ok: channel://pear.phpunit.de/PHP_CodeCoverage-0.9.0

Ответ 6

(include_path = ':/USR/бен/PHP')

Вы уверены, что добавили его в include_path?

Это также может помочь, если мы увидим ваш ini файл и фрагмент include_path в нем...

Ответ 7

Я нашел его!

Похоже, PEAR установил PHPUnit в /usr/share/pear. Не уверен, почему, но это где. Должно быть (mt) вещь.

В любом случае, я все настроен. Спасибо за помощь.

Ответ 8

Это также происходит, если у вас устаревшая или неполная установка PHPUnit. Помните, что после настройки PEAR вы должны добавить канал PHPUnit.de, чтобы получить обновленный пакет.

Ответ 9

В моем случае я решил его, добавив /usr/share/php/PEAR в include_path.

Я использую Ubuntu 10.04.2.

Ответ 10

Если у вас есть проблемы с доступом к компонентам, попробуйте другой способ.

  • Установить грушу

    sudo apt-get install php-pear
    
  • Установите phpunit с помощью груши.

    pear config-set auto_discover 1
    pear install pear.phpunit.de/PHPUnit
    
  • Установите phpunit/Selenium, но сначала вам нужно установить модуль curl

    sudo apt-get install php5-curl 
    pear install phpunit/PHPUnit_Selenium
    

Ответ 11

У меня была такая же проблема. Netbeans сообщала, что версия phpunit была слишком старой (чего не было). Запуск phpunit script показывал прямо указанные сообщения.

Я решил это добавить:

include_path=".:/usr/share/php"

В /etc/php5/cli/php.ini

Пожалуйста, обратите внимание, что файл php.ini является тем, который используется для команды php CLI (не для php.ini, используемой для apache!

Ответ 12

Моя первоначальная проблема заключалась в том, что я не смог получить версию командной строки php (yum install php или yum install php-cli) для обновления до = > php5.2.7. Я застрял в версии 5.1

Я уже скомпилировал php 5.3.3 для использования с apache. Поэтому я настраиваю символическую ссылку из /usr/bin/php (по умолчанию для командной строки) на мою скомпилированную версию в /var/php 5/bin/php, чтобы получить сообщение о командной строке php 5.3.3

Затем я переделал шаги установки груши для phpunit

Но мне все еще нужен материал для покрытия кода, когда я запускал phpunit.

Итак, я охотился на покрытие кода в /var/php 5/lib/php/PHP/CodeCoverage и добавил, что к пути include в php.ini include_path = ":/вар/php5/Library/PHP/"

Обязательно добавьте его в путь include без /PHP, потому что phpunit начинается с PHP/(извещения об ошибках), который ищет Code Coverage Не удалось открыть окно "PHP/CodeCoverage/Filter.php"

Ответ 13

У меня была эта проблема. Я разрабатывал сайт рамки zend. Наконец, мне удается решить эту проблему, удалив установку zend и удалив/комментируя путь включения в файлы ванны php.ini в apache и cli. Для разработки сайта с zend нам не нужно устанавливать zend. При заказе мы можем скопировать библиотеку в папку нашего сайта

Ответ 14

Помогло ли мне делить тест несколькими партиями.

Ответ 15

Вы можете решить эту проблему, переопределив переменные среды в PEAR. Вот как я решил проблему, и я использовал Ubuntu 12.10

http://rkrants.blogspot.in/2013/01/installing-phpunitpear-in-ubuntu-1210.html

Вкратце он определяет пути, а затем повторно устанавливает phpunit

Ответ 16

Ubuntu 12.04:

sudo pear channel-discover pear.symfony.com
sudo pear install --alldeps phpunit/PHPUnit

Ответ 17

У меня была такая же проблема с Windows 8 Подобно верхнему ответу, мне нужно было запустить командную строку, однако убедитесь, что запустите cmd.exe как администратор. Затем две команды

pear config-set auto_discover 1
pear install pear.phpunit.de/PHPUnit