Получение кода и phpunit, работающих на MAMP с OS X Lion - PullRequest
4 голосов
/ 25 января 2012

Продолжительность:

  • 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

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

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

Также представляет интерес

  • Когда я запускаю команду $ phpunit из папки моего проекта, я получаю -bash: phpunit: command not found, но если я запускаю ее как $ /Applications/MAMP/bin/php/php5.3.6/bin/phpu nit, она работает просто отлично.
  • Я бы ожидал, что в /Applications/MAMP/bin/php/php5.3.6/bin/ будет codecept файл, но его нет - однако в /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
  • PHPUnit живет здесь: /Applications/MAMP/bin/php/php5.3.6/bin/phpunit

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


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

Ответы [ 2 ]

3 голосов
/ 25 января 2012

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

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

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

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

php codecept.phar
0 голосов
/ 23 февраля 2012

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

...