У меня возникли проблемы с тем, что phpunit работает внутри проекта Symfony в PhpStorm. phpunit -c app
отлично работает в терминале OSX.
Вот ошибка:
Unable to attach test reporter to test framework of test framework quit unexpectedly /Applications/MAMP/bin/php/php5.4.4/bin/php/private/var/folders/4l/hw8g4qlj6nnc37lfkc6hcj7w0000gn/T/ide-phpunit.php --bootstrap /Users/greg/Repos/MyApp/app/bootstrap.php.cache --configuration /Users/greg/Repos/MyApp/app/phpunit.xml.dist MyApp\MyBundle\Tests\Controller\MyControllerTest /Users/greg/Repos/MyApp/src/HvH/MyBundle/Tests/Controller/MyControllerTest.php Testing started at 11:45 AM ... Process finished with exit code 255
Изменить: Вот ошибка из журнала PHP:
Fatal error: Uncaught exception 'InvalidArgumentException' with message 'The "app/" directory does not exist.' in /Users/greg/Repos/MyApp/vendor/symfony/symfony/src/Symfony/Component/Finder/Finder.php:650
Я столкнулся с той же проблемой и нашел следующее решение в документации: http://symfony.com/doc/current/book/testing.html#your-first-functional-test
Для запуска ваших функциональных тестов класс WebTestCase загружает ядро вашего приложения. В большинстве случаев это происходит автоматически. Однако, если ваше ядро находится в нестандартном каталоге, вам необходимо изменить файл phpunit.xml.dist, чтобы установить переменную среды KERNEL_DIR в каталог вашего ядра:
<phpunit> <!-- ... --> <php> <server name="KERNEL_DIR" value="/path/to/your/app/" /> </php> <!-- ... --> </phpunit>
Поэтому проверьте конфигурационный файл phpunit.xml.dist и попробуйте добавить абсолютный путь к вашему каталогу приложений.
Надеюсь, поможет.
PhpStorm не всегда создает экземпляр тестового приложения из корня проекта, чтобы исправить это, добавив абсолютный путь к корню проекта в разделе «пользовательский рабочий каталог» в конфигурации run / debug. Это избавит вас от необходимости добавлять абсолютный путь к приложению в config phpunit.xml.dist, он также обеспечит обнаружение любого файла относительного пути (например, тестовых данных JSON).
Шаги, чтобы заставить его работать (тест в PHPStorm 8.0.1):
1) В Preferences > PHP > PHPUnit
убедитесь, что ничего не установлено для файла конфигурации по умолчанию или файла начальной загрузки по умолчанию.
2) Создайте пользовательскую конфигурацию PHPUnit через Run > Edit Configurations >
в подразделе Command Line
и убедитесь, что:
a) установить Custom working directory:
быть /absolute/path/to/vendor
.
б) установите флажок «Использовать альтернативный файл конфигурации» и установите его в /absolute/path/to/vendor/your_app/(sub_app_if_applicable)/phpunit.xml.dist
Затем вы можете запустить любой тестовый класс в пакете, указав класс и файл, или просто отметьте «Определено в файле конфигурации», чтобы запустить все из них в соответствии с конфигурацией.
Я столкнулся с тем же вопросом. Если вы используете yii2 / phpStorm, попробуйте выбрать codeception.yml
вместо unit.yml
разделе «альтернативный файл конфигурации» в разделе конфигурации отладки.