#php #phpunit #symfony
#php #phpunit #symfony
Вопрос:
После новой установки symfony2 я могу запустить phpunit -c app/
и phpunit протестирует прилагаемое демонстрационное приложение: OK (1 test, 1 assertion)
.
Но я не получаю никаких выходных данных (даже с подробностями) при запуске, phpunit -c vendor/symfony/
как описано здесь: http://symfony.com/doc/2.0/contributing/code/tests.html .
Кто-нибудь знает, как заставить это работать?
- PHPUnit: 3.6.2
- PHP: 5.3.8
- Symfony: 2.0.5
Тестирование twig, doctrine и других плагинов работает как ожидалось (хотя тесты doctrine по какой-то причине завершаются неудачей).
Комментарии:
1. Вы проверили исходный код symfony? Для symfony 1.x они включают в себя целую библиотеку тестов в каталоге /test.
2. У меня есть 2 каталога в vendor / symfony / tests /Symfony/ Tests: Bridge и Component. Оба содержат множество тестовых примеров («расширяет PHPUnit_Framework_TestCase»).
3. Запуск phpunit в / app может не сработать, поскольку вам придется настраивать собственные модульные тесты. У symfony нет возможности узнать, как вы собираетесь создавать свои приложения. Но он должен, по крайней мере, запускать модульные тесты для основного кода.
Ответ №1:
Если у вас нет выходных данных, возможно, это потому, что вы настроили php так, чтобы он не отображал ошибки.
Вы должны установить поставщиков, используя vendors.php
скрипт, прежде чем запускать набор тестов Symfony:
$ php vendor/symfony/vendors.php
Комментарии:
1. Спасибо! Я думал, что уже установил их, выполнив
php bin/vendors install
2. Что ж, это правильный ответ. К сожалению, мне не разрешено голосовать за это (недостаточно репутации). Что меня поражает, так это тот факт, что тесты symfony2 прерываются примерно на 66% без какого-либо уведомления. :/ Я собираюсь зайти на форумы symfony и спросить, что с этим такое.
3. Я думаю, что выходные данные пусты из-за вашей конфигурации PHP (сообщения об ошибках, показывать ошибки, …). Поскольку Symfony поставляется с огромным набором тестов, вам следует попытаться увеличить максимально допустимый объем памяти в вашем php.ini.
4. Ошибка действительно была неправильной настройкой error_reporting в php.ini. Там была опечатка. :/ Это работает с
E_ALL | E_STRICT
. 24 теста по-прежнему завершаются неудачей … что-то о времени и валютных форматах. Так или иначе, главная проблема решена. Спасибо вам всем!
Ответ №2:
Вы запускаете тесты, используя предоставленный phpunit.xml.dist
файл конфигурации?
Из корневого каталога ваших проектов:
$ phpunit --configuration app/phpunit.xml.dist vendor/symfony/tests
Это должно добавить автозагрузчик для поставщиков.
Комментарии:
1. Да, именно поэтому я использовал опцию «-c» (идентичную «—configuration»).