Я работаю с установкой Enterprise Edition 1.13.1 (хотя Community Edition будет иметь ту же проблему), и мы устанавливаем зависимости через composer, где они доступны. Я установил расширение Ивана Ecomdev_PhpUnit через composer, который купил все обычные зависимости phpunit. Я также скопировал phpunit.xml.dist из vendor / ivanchepurnyi / ecomdev_phpunit в корневой каталог моих проектов.
Когда я впервые запустил свои модульные тесты, я получил следующую ошибку:
The test was skipped, since vfsStream component is not installed. Try install submodules required for this functionality
Впоследствии я добавил composer.json
и запустил следующую запись require-dev composer update
:
"mikey179/vfsStream": ">=1.2.0",
Тем не менее, PHPUnit по-прежнему жалуется, что vfsStream не установлен.
Просматривая репозиторий GitHub для расширения Ecomdev_PHPUnit, видно, что патч был объединен, чтобы позволить автозагрузке libvsfstream при использовании composer . Однако это кажется частичным решением, поскольку автозагрузчик компоновщика нигде не включен, поэтому вызов class_exists все равно не выполняется.
Я могу отредактировать /vendor/ivanchepurnyi/ecomdev_phpunit/app/code/community/EcomDev/PHPUnit/bootstrap.php:41 для включения автозагрузчика композитора во время начальной загрузки (или скопировать bootstrap.php в другое место в моем проекте и отредактировать его) , Это лучшее решение этой проблемы, или в Composer или Ecomdev_PhpUnit есть функция, которая мне не хватает?
источник
Другим решением этой проблемы является использование автозагрузчика: https://github.com/magento-hackathon/Magento-PSR-0-Autoloader. Это означает, что вам не нужно редактировать файл начальной загрузки.
источник
Я знаю, что это может быть немного поздно, но просто скачайте vfsStream с GitHub и скопируйте / вставьте содержимое в lib / vfsStream, чтобы решить вашу проблему.
https://github.com/mikey179/vfsStream
источник