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?

Jim OHalloran
la source

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.

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

Un autre correctif à cela est d'utiliser l'autochargeur: https://github.com/magento-hackathon/Magento-PSR-0-Autoloader, cela signifie que vous n'avez pas à modifier le fichier d'amorçage.

Pete
la source
+1 Bien que j'ai fini par éditer bootstrap.php pour résoudre mon problème, c'est probablement la meilleure solution.
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

Michel Gokan
la source
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