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