Der von Composer installierte Befehl Ecomdev_PhpUnit überspringt Tests, weil vfsstream fehlt


14

Ich arbeite mit einer Enterprise Edition 1.13.1-Installation (obwohl Community Edition das gleiche Problem hätte) und wir installieren Abhängigkeiten über Composer, sofern diese verfügbar sind. Ich habe Ivans Ecomdev_PhpUnit-Erweiterung über einen Composer installiert, der alle normalen phpunit-Abhängigkeiten einkauft. Ich habe auch phpunit.xml.dist vom Hersteller / ivanchepurnyi / ecomdev_phpunit in das Stammverzeichnis meines Projekts kopiert.

Als ich meine Unit-Tests zum ersten Mal durchführte, erhielt ich die folgende Fehlermeldung:

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

Anschließend habe ich den folgenden Eintrag für require-dev hinzugefügt composer.jsonund ausgeführt composer update:

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

PHPUnit beschwert sich jedoch weiterhin darüber, dass vfsStream nicht installiert ist.

Wenn Sie das GitHub-Repository nach der Erweiterung Ecomdev_PHPUnit durchsuchen, sieht es so aus, als ob ein Patch zusammengeführt wurde, damit libvsfstream automatisch geladen werden kann, wenn Composer verwendet wird . Dies scheint jedoch eine Teillösung zu sein, da der Composer-Autoloader nirgendwo enthalten ist und der Aufruf von class_exists weiterhin fehlschlägt.

Ich kann /vendor/ivanchepurnyi/ecomdev_phpunit/app/code/community/EcomDev/PHPUnit/bootstrap.php:41 bearbeiten, um den Composer-Autoloader während des Bootstraps einzuschließen (oder die Datei bootstrap.php in mein Projekt kopieren und bearbeiten) . Ist dies die beste Lösung für dieses Problem, oder gibt es eine fehlende Funktion in Composer oder Ecomdev_PhpUnit?

Antworten:


3

Das Bearbeiten des Bootstraps ist hier die richtige Lösung, da der Bootstrap zu Ihrem eigenen Projektumfang gehört.
Das von ecomdev gelieferte ist nur ein Beispiel / Standard, das sich an den klassischen Nicht-Komponisten-Installationen orientiert.


Danke, das ist die Lösung, die ich letztendlich benutzt habe, um sicherzugehen, dass mir nichts entgeht.
— Jim OHalloran


2

Ich weiß, dass dies ein bisschen spät sein kann, aber einfach vfsStream von GitHub herunterladen und den Inhalt nach lib / vfsStream kopieren / einfügen kann Ihr Problem lösen.

https://github.com/mikey179/vfsStream


Das Problem ist nicht, dass vfsStream nicht installiert ist, sondern dass es nicht automatisch geladen werden kann.
— Jim OHalloran

Aber ich hatte genau das gleiche Problem (Komponist hat nicht geholfen) und habe einfach die Lösung, die ich geschrieben habe, und es gelöst.
— Michel Gokan

@MichelGokan, deine Lösung hat auch bei mir gut funktioniert. Danke.
— DarkCowboy
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.