Composer installé Ecomdev_PhpUnit ignore les tests en raison de vfsstream manquant


14

Je travaille avec une installation Enterprise Edition 1.13.1 (bien que Community Edition aurait le même problème), et nous installons les dépendances via composer où elles sont disponibles. J'ai installé l'extension Ecomdev_PhpUnit d'Ivan via composer qui a acheté toutes les dépendances phpunit normales. J'ai également copié phpunit.xml.dist de vendor / ivanchepurnyi / ecomdev_phpunit dans le répertoire racine de mes projets.

Lorsque j'ai exécuté mes tests unitaires pour la première fois, j'ai reçu l'erreur suivante:

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

J'ai par la suite ajouté l'entrée require-dev suivante composer.jsonet exécuté composer update:

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

Cependant, PHPUnit se plaint toujours que vfsStream n'est pas installé.

En regardant dans le référentiel GitHub pour l'extension Ecomdev_PHPUnit, il semble qu'un correctif a été fusionné pour permettre à libvsfstream d'être chargé automatiquement lorsque composer est utilisé . Cependant, cela semble être une solution partielle car le chargeur automatique du composeur n'est inclus nulle part, donc l'appel class_exists échoue toujours.

Je peux modifier /vendor/ivanchepurnyi/ecomdev_phpunit/app/code/community/EcomDev/PHPUnit/bootstrap.php:41 pour inclure le chargeur automatique du compositeur pendant le bootstrap (ou copier le bootstrap.php vers un autre emplacement de mon projet et le modifier) . Est-ce la meilleure solution à ce problème ou existe-t-il une fonctionnalité dans Composer ou Ecomdev_PhpUnit qui me manque?

Réponses:


3

l'édition du bootstrap est la bonne solution ici, car le bootstrap appartient à la portée de votre propre projet.
Celui fourni par ecomdev n'est qu'un exemple / par défaut, qui est orienté sur les installations classiques non compositeurs.


Merci, c'est la solution que j'ai finalement utilisée, je voulais juste m'assurer de ne rien manquer.
Jim OHalloran


2

Je sais que cela pourrait être un peu en retard, mais téléchargez simplement vfsStream depuis GitHub et copiez / collez le contenu sur lib / vfsStream peut résoudre votre problème.

https://github.com/mikey179/vfsStream


Le problème n'est pas que vfsStream n'est pas installé (il l'est), c'est qu'il ne peut pas être chargé automatiquement.
Jim OHalloran

Mais j'ai eu exactement le même problème (le compositeur n'a pas aidé) et j'ai juste fait la solution que j'ai écrite et elle a résolu.
Michel Gokan

@MichelGokan, votre solution a bien fonctionné pour moi aussi. THX.
DarkCowboy
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.