El compositor instaló Ecomdev_PhpUnit omite las pruebas debido a la falta de vfsstream

14

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.jsony 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?

Jim OHalloran
fuente

Respuestas:

3

editar el bootstrap es la solución correcta aquí, ya que el bootstrap pertenece al alcance de su propio proyecto.
El que ofrece ecomdev es solo un ejemplo / predeterminado, que está orientado a las instalaciones clásicas que no son de compositor.

Flyingmana
fuente
Gracias, esa es la solución que terminé usando, solo quería asegurarme de que no me faltaba algo.
Jim OHalloran el
2

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

Michel Gokan
fuente
El problema no es que vfsStream no esté instalado (lo está), es que no se puede cargar automáticamente.
Jim OHalloran el
Pero tuve exactamente el mismo problema (el compositor no ayudó) y solo hice la solución que escribí y resolvió.
Michel Gokan
@MichelGokan, tu solución también funcionó bien para mí. Gracias.
DarkCowboy