O compositor instalado Ecomdev_PhpUnit ignora os testes devido à falta do vfsstream

14

Estou trabalhando com uma instalação do Enterprise Edition 1.13.1 (embora o Community Edition tenha o mesmo problema) e estamos instalando dependências por meio do compositor, onde estiverem disponíveis. Instalei a extensão Ecomdev_PhpUnit de Ivan por meio do compositor, que comprou todas as dependências normais do phpunit. Também copiei o phpunit.xml.dist do fornecedor / ivanchepurnyi / ecomdev_phpunit no diretório raiz do meu projeto.

Quando executei meus testes de unidade pela primeira vez, recebi o seguinte erro:

The test was skipped, since vfsStream component is not installed. Try install submodules required for this functionality

Posteriormente, adicionei composer.jsone execute a seguinte entrada require-dev composer update:

"mikey179/vfsStream": ">=1.2.0",

No entanto, o PHPUnit ainda reclama que o vfsStream não está instalado.

Examinando a extensão Ecomdev_PHPUnit no repositório GitHub, parece que um patch foi mesclado para permitir que o libvsfstream seja carregado automaticamente quando o compositor é usado . No entanto, isso parece uma solução parcial, pois o carregador automático do compositor não é incluído em nenhum lugar, portanto a chamada de class_exists ainda falha.

Posso editar /vendor/ivanchepurnyi/ecomdev_phpunit/app/code/community/EcomDev/PHPUnit/bootstrap.php:41 para incluir o carregador automático do compositor durante a inicialização (ou copiar o bootstrap.php para outro local no meu projeto e editá-lo) . Essa é a melhor solução para esse problema ou há um recurso no Composer ou no Ecomdev_PhpUnit que estou ausente?

Jim OHalloran
fonte

Respostas:

3

editar a auto-inicialização é a solução correta aqui, pois a auto-inicialização pertence ao seu próprio escopo do projeto.
O que o ecomdev fornece é apenas um exemplo / padrão, que é orientado nas instalações clássicas de não compositor.

Flyingmana
fonte
Obrigado, essa é a solução que acabei usando, só queria ter certeza de que não estava perdendo alguma coisa.
Jim OHalloran
4

Outra correção para isso é usar o carregador automático: https://github.com/magento-hackathon/Magento-PSR-0-Autoloader, isso significa que você não precisa editar o arquivo de inicialização.

Pete
fonte
+1 Embora eu tenha acabado editando o bootstrap.php para resolver meu problema, esta é provavelmente a melhor solução.
Jim OHalloran
2

Sei que isso pode ser um pouco tarde, mas simplesmente faça o download do vfsStream no GitHub e copie / cole o conteúdo no lib / vfsStream pode resolver seu problema.

https://github.com/mikey179/vfsStream

Michel Gokan
fonte
O problema não é que o vfsStream não está instalado (é), é que não pode ser carregado automaticamente.
Jim OHalloran
Mas eu tive exatamente o mesmo problema (o compositor não ajudou) e apenas fiz a solução que escrevi e resolvi.
Michel Gokan
@MichelGokan, sua solução também funcionou bem para mim. Valeu.
precisa saber é o seguinte