Estoy trabajando con una instalación Enterprise Edition 1.13.1 (aunque Community Edition tendría el mismo problema), y estamos instalando dependencias a través del compositor donde estén disponibles. He instalado la extensión Ecomdev_PhpUnit de Ivan a través del compositor que ha comprado todas las dependencias normales de phpunit. También he copiado phpunit.xml.dist del proveedor / ivanchepurnyi / ecomdev_phpunit en el directorio raíz de mis proyectos.
Cuando ejecuté por primera vez mis pruebas unitarias, recibí el siguiente error:
The test was skipped, since vfsStream component is not installed. Try install submodules required for this functionality
Posteriormente agregué la siguiente entrada require-dev composer.json
y la ejecuté composer update
:
"mikey179/vfsStream": ">=1.2.0",
Sin embargo, PHPUnit todavía se queja de que vfsStream no está instalado.
Mirando a través del repositorio de GitHub para la extensión Ecomdev_PHPUnit, parece que se ha fusionado un parche para permitir que libvsfstream se cargue automáticamente cuando se utiliza el compositor . Sin embargo, esto parece una solución parcial ya que el autocargador del compositor no está incluido en ningún lado, por lo que la llamada class_exists todavía falla.
Puedo editar /vendor/ivanchepurnyi/ecomdev_phpunit/app/code/community/EcomDev/PHPUnit/bootstrap.php:41 para incluir el autocargador del compositor durante el arranque (o copiar el bootstrap.php a otra ubicación en mi proyecto y editarlo) . ¿Es esta la mejor solución a este problema, o hay una característica en Composer o Ecomdev_PhpUnit que me falta?
fuente
Otra solución para esto es usar el cargador automático: https://github.com/magento-hackathon/Magento-PSR-0-Autoloader, esto significa que no tiene que editar el archivo de arranque.
fuente
Sé que esto podría ser un poco tarde, pero simplemente descargue vfsStream desde GitHub y copie / pegue el contenido en lib / vfsStream para resolver su problema.
https://github.com/mikey179/vfsStream
fuente