Как настроить PhpStorm для использования symfony / phpunit-bridge

У меня были проблемы с настройкой PhpStorm IDE для использования http://symfony.com/doc/current/components/phpunit_bridge.html во время работы с Symfony 3.3.

Я решил просто скачать phpunit.phar в bin и использовать его вместо этого.

Symfony 3.4 (и Symfony 4), даже не имеет phpunit.xml.dist из коробки, поэтому есть проблема с использованием phpunit.phar без труда.

Я установил PHPUnit, используя flex:

composer req phpunit

Это создало phpunit.xml.dist, и я смог запустить тесты из командной строки:

php bin/phpunit

Но опять же я не мог заставить PhpStorm использовать его.

Итак, я скачал phpunit.phar и он может работать вместе с предоставленным phpunit.xml.dist.

Вопрос 1: Есть ли способ для PhpStorm IDE использовать phpunit-bridge?

Вопрос 2: Какова лучшая практика для Symfony 4 (phpunit-bridge или vanilla phpunit.phar)?

13

Решение

Что я обычно делаю, так это указываю на секретную структуру phpunit на PHPStorm .phpunit каталог, который был создан мостом, например:
введите описание изображения здесь

Расположение файла «phar»:

bin/.phpunit/phpunit-(major).(minor)/phpunit

или в некоторых случаях:

vendor/bin/.phpunit/phpunit-(major).(minor)/phpunit

После этого указанный phpunit Исполняемый файл будет вызываться правильно при выполнении юнит-тестов, но с --no-configuration вариант. Это может вызвать проблемы с автозагрузкой (много ошибок «class not found»), потому что автозагрузчик, сгенерированный Composer, нигде не указан.

Чтобы это исправить, вы должны иметь phpunit.xml файл в вашем проекте (в любом случае, это обычная практика), в котором вы указываете автозагрузчик Composer, что-то вроде этого:

<phpunit bootstrap="vendor/autoload.php">

это phpunit.xml Затем следует указать в параметре «Файл конфигурации по умолчанию», и вы должны быть готовы.


Что касается phpstorm с использованием phpunit-bridge:
Это возможно как пользовательский скрипт, но у вас не будет приятного интерфейса и возможности запускать (и отлаживать) определенные тесты через интерфейс PHPStorm.

31

Другие решения

Мне удается запустить symfony / phpunit-bridge с помощью этой конфигурации:

  • PhpStorm 2018.2.5
  • Symfony 4.1.x
  • PHP 7.1 работает на докере
  • «symfony / test-pack»: «^ 1.0»

после composer require --dev symfony/test-pack у меня есть в реж /vendor/bin файл simple-phpunit который должен бежать symfony/phpunit-bridge просто хорошо.

Тогда в PhpStorm в File | Settings | Languages & Frameworks | PHP | Test Frameworks задавать:

  • радио выберите Path to phpunit.phar вариант
  • Path to phpunit.phar на абсолютный путь simple-phpunit файл (например, /application/vendor/bin/simple-phpunit)
  • проверять Default configuration file: и установите входное значение для абсолютной локализации вашего phpunit.xml.dist (в моем случае /application/phpunit.xml.dist)

phpstorm настройки phpunit

нота: phpunit.xml.dist файл должен быть настроен на использование symfony/phpunit-bridge — проверять https://symfony.com/doc/current/components/phpunit_bridge.html

Нажмите Appply / Ok, и теперь вы можете запускать тесты из интерфейса PhpStorm

5

Помимо данного ответа, стоит упомянуть, что секрет .phpunit каталог не появится из ничего.

После composer req phpunitнужно запустить phpunit сценарий первый, например:

bin/phpunit

который загрузит локальную копию PHPUnit и поместит в ту же папку, поэтому путь к исполняемому файлу phar будет:

bin/.phpunit/phpunit-6.5/phpunit
0

Это очень простая и не важная версия Symfony, потому что концепция тестирования все еще стабильна. Во-первых, вам нужно настроить тестовый фреймворк в настройках PHPstorm (Скриншот), в вашем случае вы можете использовать Vendored PHPUnit или загрузить вручную, вы можете присоединиться к PHPUnit library раздел. Тогда вам нужно добавить Run/Debug конфигурация.
"phpunit/phpunit" а также "symfony/phpunit-bridge" как я вижу был установлен, это все.

-1
По вопросам рекламы [email protected]