Почему тест phpUnit не работает? ZF2

0

Я читаю книгу "Изучаю ZF2: Изучение по примеру" Слави Караджова. Теперь я на страницах 103-107. Я пытаюсь запустить тест PHPUnit, как описано, но ничего не происходит... Где проблема и как ее исправить?

Чтобы войти в ту же ситуацию, вам придется:

git clone https://github.com/slaff/learnzf2.git .

composer.phar self-update
composer.phar install

git stash
git checkout 'ch-unittest'

Это должно привести к тому же файлу, что и у меня (= как в книге).

Теперь я пытаюсь запустить эту команду:

ZF2_PATH='pwd'/vendor/zendframework/zendframework/library \php vendor/bin/phpunit -c module/User/tests/

И команда работает не так, как ожидалось... Я ожидал бы, что результат результата теста или так, но все, что я получаю, - это выход, который похож на содержимое, которое у меня есть в файле vendor/bin/phpunit. Это:

#!/usr/bin/env sh
SRC_DIR="'pwd'"
cd "'dirname "$0"'"
cd "../phpunit/phpunit/composer/bin"
BIN_TARGET="'pwd'/phpunit"
cd "$SRC_DIR"
"$BIN_TARGET" "$@"

Точнее, первая строка (#!/Usr/bin/env sh) не отображается на выходе. Остальные действительно появляются.

**

Я запускаю код на ОС Windows 8.1 Pro, используя Git Bash (версия git 1.9.4.msysgit.1). Похоже, что ключевое слово php хорошо работает, так как написание php -v работает так, как ожидалось (выходы PHP 5.5.12 (cli) (built: Apr 30 2014 11:20:58)...)

Мое собственное предположение было бы то, что Git bash не может решить код, который он находит в vendor/bin/phpunit, поэтому он не работает... Но это только предположение...

РЕДАКТИРОВАТЬ # 1: просто попробовал на общем хостинге с набором LAMP. Все прошло хорошо. Похоже, что Zend Framework 2 и Windows не очень дружелюбны в некоторых случаях (например, в только что упомянутом блоке тестирования). Похоже, что очень хорошая книга (без сарказма, это действительно хорошая) было бы лучше, если бы у нее была еще одна глава о чем-то вроде VirtualBox + Vagrant + PuPHPet (или что-то близкое к этому).

Теги:
zend-framework
phpunit
zend-framework2

1 ответ

0
Лучший ответ

Строка файла composer.json, используемая в книге: phpunit/phpunit": "3.7.*

Я изменил phpunit/phpunit": "3.7.* phpunit/phpunit": "4.5.* Как 4.5 версия PHPUnit является текущей стабильностью. Затем, конечно же: php composer.phar update Тогда этот будет работать красиво:

ZF2_PATH='pwd'/vendor/zendframework/zendframework/library \php vendor/phpunit/phpunit/phpunit -c module/User/tests/

Вышеприведенная команда не такая же, как в книге.

Проверено на Windows, 8.1, Ubuntu 14.04 LTS Trusty x64, изолированная среда разработки обеспечивают здесь. Работает хорошо.

Существует также способ сделать PHPUnit 3.7. * Работать на всех системах (те же самые проверенные мной системы), но команда должна быть изменена на:

ZF2_PATH='pwd'/vendor/zendframework/zendframework/library \php vendor/phpunit/phpunit/composer/bin/phpunit -c module/User/tests/

Вышеприведенная команда не такая же, как в книге.

Итак... Здесь у нас есть два способа упоминания о том, чтобы пойти с проверками PHPUnit, чтобы заставить их работать. Мы должны решить, что ведьма из двух лучше. Я бы предпочел, чтобы с обновленной версией PHPUnit до 4.5 на данный момент.

Большое спасибо Слави Караджову - автору книги, который создал изолированную среду разработки для программирования с Zend Framework 2 (ZF2).
Кроме того, благодаря @jamaldo, @steeler и @malte, чья деятельность (сообщение, комментарии) привела меня на правильный путь. Сообщение, о котором я говорю, находится здесь: https://stackoverflow.com/questions/23881289/php-vendor-bin-phpunit-is-printing-in-console-a-text

Ещё вопросы

Сообщество Overcoder
Наверх
Меню