Как использовать phpunit, установленный из composer?

49

Я хочу начать модульное тестирование моего приложения symfony 2 с помощью phpunit. Я установил phpunit, используя композитор (для каждого проекта). http://www.phpunit.de/manual/current/en/installation.html

Как мне теперь запустить команду phpunit на Zend Server? У меня нет груши.

Теги:
composer-php
phpunit

6 ответов

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

Если вы следовали документации, вы установили зависимость phpunit/phpunit как "dev-dependency".

Если у вас нет композитора, вам нужно сначала его установить. Это объясняется в документации: Установка * nix или Установка Windows. Если вы уже установили композитор, рекомендуется обновить композитор до последней версии, выполнив команду self-update:

$ php composer.phar self-update

После того, как вы это сделали, вам нужно установить все зависимости, включая зависимости dev. Это делается путем запуска команды update с помощью переключателя --dev:

$ php composer.phar update --dev

Все зависимости устанавливаются в каталоге vendor. PHPunit запускается с консоли. Composer автоматически помещает файлы консоли в каталог vendor/bin. Вам нужно выполнить файл phpunit:

$ vendor/bin/phpunit -c app/

Переключатель -c сообщает PHPUnit искать файл конфигурации в каталоге app, Symfony2 уже настроил правильную конфигурацию для запуска всех тестов, которые находятся в каталоге <bundle>/Tests.

ОБНОВЛЕНИЕ (05-04-2013)

Композитор изменил свои команды обновления/установки. update будет устанавливать зависимости dev по умолчанию, и если вы хотите установить зависимости dev, вам нужно использовать опцию --dev.

ОБНОВЛЕНИЕ (11-06-2013)

Composer снова изменил свои команды, команда install также установит зависимости dev.

  • 0
    Ага! пропустил --dev: p В любом случае, теперь я получаю следующую ошибку: Warning: include(C:\Program Files (x86)\Zend\Apache2\Program Files (x86)\Zend\Ap ache2\htdocs\project1\vendor\phpunit\phpunit\PHPUnit\TextUI\Command.php): failed to open stream: No such file or directory in C:\Program Files (x86)\Zend\Apache 2\htdocs\project1\vendor\composer\ClassLoader.php on line 150. Файл все же существует.
  • 0
    Я продолжил свою ошибку здесь: stackoverflow.com/questions/13765651/…
Показать ещё 6 комментариев
19

Как насчет более сложного композитора?

composer exec phpunit

Он может использоваться для каждого двоичного файла в каталоге vendor/bin.

15

ОБНОВЛЕНИЕ (12-02-2014)

Композиторы и PHPUnit снова изменили свои команды. Команда install также установит зависимости dev:

Composer.json:

...
"require-dev": {
    "phpunit/phpunit": "3.7.*"
},

Запустите его:

$ composer.phar update --prefer-dist --dev

Теперь вы можете запускать свои тесты с помощью:

$ bin/phpunit -c /app

Приветствия,

  • 0
    Вы можете напечатать 'composer.phar update --help'?
4

Мне нравится определять script внутри composer.json, так что я могу просто запустить:

$ composer test
# ... runs phpunit

Для этого мне нужно изменить composer.json, чтобы он содержал такую ​​запись:

"scripts": {
    "test": [
        "phpunit tests/*.php"
    ]
}
4

Для Symfony 3 добавьте "phpunit/phpunit": "5.4.*" в раздел "require-dev" в composer.json и запустите тесты из корневого каталога приложений с помощью

./vendor/bin/phpunit tests
  • 0
    Вы имеете в виду composer.json, конечно. :)
  • 0
    Спасибо, исправили это. :)
Показать ещё 1 комментарий
4

Добавьте его в качестве зависимости от dev в каталоге проекта:

composer require --dev "phpunit/phpunit=4.8.*"

Установленный phpunit теперь можно выполнить с помощью:

./vendor/bin/phpunit
  • 2
    Теперь вы можете использовать версию: 5.3.* Вместо.

Ещё вопросы

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