Странная ошибка при запуске набора тестов phpUnit из Zend Studio 8 - PullRequest
0 голосов
/ 31 марта 2011

Zend Studio 8 имеет интеграцию с phpUnit и специальное представление, и это здорово, поэтому я хотел бы использовать его ... но:

Когда я запускаю свой phpunit.xml в командной строке, тесты выполняются просто отлично, когда я пытаюсь запустить phpunit.xml в Zend Studio в качестве модульного теста, я получаю следующую фатальную ошибку:

Неустранимая ошибка: необработанное исключение 'PHPUnit_Framework_Error' с сообщением Назначение возвращаемого значения нового ссылка устарела 'в C: \ Program файлы (X86) \ Zend \ ZendServer \ Bin \ PEAR \ PEAR \ config.php: 650

Трассировка стека:

# 0 C: \ Program Files (X86) \ Zend \ ZendServer \ Bin \ PEAR \ PEAR \ RunTest.php (22): ZendPHPUnitErrorHandler-> ручка (8192, «Назначение r ...», «C: \ Program» Файл ... ', 650, Массив)
# 1 C: \ Программа файлы (X86) \ Zend \ ZendServer \ Bin \ PEAR \ PEAR \ RunTest.php (22): require_once ()
# 2 C: \ Program Files (X86) \ Zend \ ZendServer \ Bin \ PEAR \ PHPUnit \ Extensions \ PhptTestCase.php (49): require_once ('C: \ Program File ...')
# 3 C: \ Program Files (x86) \ Zend \ Zend Студия - 8.0.0 \ Plugins \ com.zend.php.phpunit_8.0.0.v20101001-0100 \ Resources \ ZendPHPUnit.php (103): require_once ('C: \ Program File ...')
# 4 {main} в C: \ Program Files (X86) \ Zend \ ZendServer \ Bin \ PEAR \ PEAR \ config.php по линии 650

Я действительно понятия не имею, что это значит ... почему какой-то устаревший код в конфигурации PEAR не должен запускать мои тесты?

[править] Некоторая дополнительная информация :

Мой коллега, у которого не установлены ни PEAR, ни phpunit, может нормально запускать модульные тесты из Zend Studio 8, но он не может запустить ни один из CLI. Похоже, что Zend Studio не только интегрируется с phpUnit, но и поставляется вместе с его версией. Я хотел самую новую версию, и поэтому я установил PEAR, а затем через PEAR я установил phpUnit. Как следствие, библиотека phpUnit Zend Studio устарела, и мне пришлось заменить файл «ZendPHPUnit.php» в папке плагинов Zend Studio на версию пользователя Zend Forum. Это приводит к правильному включению классов phpUnit и текущей проблеме. [/ Править]

1 Ответ

3 голосов
/ 31 марта 2011

Строка 650 в PEAR \ Config.php делает

$this->_registry['default'] = &new PEAR_Registry(
    $this->configuration['default']['php_dir']
);

Это вызовет сообщение E_DEPRECATED в зависимости от того, включена ли функция error_reporting для включения этого уровня. Обработчики ошибок PHPUnit и ZendPHPUnit преобразуют их в PHPUnit_Framework_Exceptions.

Поскольку PHP будет вызывать E_DEPRECATED уже во время компиляции, единственный способ подавить эти ошибки - это php.ini. Я предполагаю, что ваш PHPUnit, который вы запускаете из CLI, использует другой php.ini, чем Zend Studio, и в этом php.ini уровень ошибок недостаточно низок, чтобы поднять E_DEPRECATED.

Если вы можете предоставить воспроизводимый пример, мы могли бы иметь больше смысла в этом. В любом случае попробуйте обновить установленную версию PEAR до последней версии.

...