Как использовать phpunit, установленный из композитора?
Я хочу начать модульное тестирование моего приложения symfony 2 с помощью phpunit. Я установил phpunit, используя композитор (для каждого проекта).
http://www.phpunit.de/manual/current/en/installation.html
Как мне теперь запустить команду phpunit на Zend Server? У меня нет груши.
Ответы
Ответ 1
Если вы следовали документации, вы установили зависимость 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.
Ответ 2
Как насчет более сложного композитора?
composer exec phpunit
Он может использоваться для каждого двоичного файла в каталоге vendor/bin.
Ответ 3
ОБНОВЛЕНИЕ (12-02-2014)
Композиторы и PHPUnit снова изменили свои команды.
Команда install также установит зависимости dev:
Composer.json:
...
"require-dev": {
"phpunit/phpunit": "3.7.*"
},
Запустите его:
$ composer.phar update --prefer-dist --dev
Теперь вы можете запускать свои тесты с помощью:
$ bin/phpunit -c /app
Приветствия,
Ответ 4
Добавьте его в качестве зависимости от dev в каталоге проекта:
composer require --dev "phpunit/phpunit=4.8.*"
Установленный phpunit теперь можно выполнить с помощью:
./vendor/bin/phpunit
Ответ 5
Для Symfony 3 добавьте "phpunit/phpunit": "5.4.*"
в раздел "require-dev"
в composer.json
и запустите тесты из корневого каталога приложений с помощью
./vendor/bin/phpunit tests
Ответ 6
Мне нравится определять script внутри composer.json
, так что я могу просто запустить:
$ composer test
# ... runs phpunit
Для этого мне нужно изменить composer.json
, чтобы он содержал такую запись:
"scripts": {
"test": [
"phpunit tests/*.php"
]
}