Intereting Posts

Получение кода и phpunit для работы с MAMP с OS X Lion

Бег:

  • MAMP 2.0.5
  • PHP 5.3.6 (в комплекте с MAMP)
  • Mac OS X Lion 10.7.2

Моя цель – заставить структуру тестирования Codeception работать и использовать в рамках моего проекта MAMP. Я следую инструкциям по установке.

Груша установлена ​​и работает нормально. Я могу получить Codeception с этими командами:

$ pear channel-discover codeception.com/pear $ pear install codeception/Codeception 

После установки, когда я пытаюсь запустить команды codecept, я получаю следующую ошибку:

 Warning: require_once(Codeception/autoload.php): failed to open stream: No such file or directory in /usr/bin/codecept on line 12 Fatal error: require_once(): Failed opening required 'Codeception/autoload.php' (include_path='.:') in /usr/bin/codecept on line 12 

Я думаю, что проблема вызвана либо:

  • Конфликт между установкой PHP MAMP в одном комплекте с OS X
  • Проблема с include_path в моем php.ini или в другом месте

Также интересен

  • Когда я запускаю команду $ phpunit изнутри моей папки проекта, я получаю -bash: phpunit: command not found но если я запускаю ее как $ /Applications/MAMP/bin/php/php5.3.6/bin/phpu nit она работает просто отлично ,
  • Я ожидаю, что там будет файл codecept в /Applications/MAMP/bin/php/php5.3.6/bin/ но его нет – есть, однако, папка /Applications/MAMP/bin/php/php5.3.6/lib/php в /Applications/MAMP/bin/php/php5.3.6/lib/php
  • Я попробовал несколько различных способов установить его, и я предполагаю, что один из способов установки Codeception в Lion-копии php (в отличие от MAMP) – поэтому у меня есть файл codecept в /usr/bin/ а также Папка Codeception в /usr/lib/php/pear/

Для справки:

  • PHP живет здесь: /Applications/MAMP/bin/php/php5.3.6/bin/php
  • /Applications/MAMP/bin/php/php5.3.6/bin/pear живет здесь: /Applications/MAMP/bin/php/php5.3.6/bin/pear
  • PHPUnit живет здесь: /Applications/MAMP/bin/php/php5.3.6/bin/phpunit

Любая помощь? Предложения?


Благодаря помощи Даверта я смог подтвердить, что это конфликт с копией PHP и встроенной копией PHP в PHP. Чтобы решить проблему, я создал новый файл php.ini файле /etc который был дубликат php.ini.default и изменил include_path на /Applications/MAMP/bin/php/php5.3.6/lib/php

Я думаю, проблема в том, что ваша команда PEAR была выполнена из связанного PHP. Таким образом, ваши первичные библиотеки PHP MAMP в (/Applications/MAMP/bin/php/php5.3.6/bin/pear) не обновлялись. Я предлагаю вам найти второй PEAR, потому что Codeception был постоянно сохранен. И добавьте путь к нему в include_path в php.ini.

Да, PEAR довольно глючит. В следующих выпусках будет добавлен установщик Composer.

Кроме того, вы можете попробовать использовать исполняемый файл Phar.

В этом случае Codeception должен быть выполнен с:

 php codecept.phar 

Одним из решений, который работал для меня, было редактирование /Applications/MAMP/bin/php5.3/bin/codecept и замена / usr / bin / php в первой строке /Applications/MAMP/bin/php5.3/bin/php