Pracuję z instalacją Enterprise Edition 1.13.1 (chociaż wydanie Community Edition miałoby ten sam problem) i instalujemy zależności za pośrednictwem kompozytora tam, gdzie są one dostępne. Zainstalowałem rozszerzenie Ivana Ecomdev_PhpUnit przez kompozytora, który kupił wszystkie normalne zależności phpunit. Skopiowałem również phpunit.xml.dist z vendor / ivanchepurnyi / ecomdev_phpunit do katalogu głównego moich projektów.
Kiedy po raz pierwszy przeprowadziłem testy jednostkowe, otrzymałem następujący błąd:
The test was skipped, since vfsStream component is not installed. Try install submodules required for this functionality
Następnie dodałem następujący wpis wymagany-dev do composer.json
i uruchamiam composer update
:
"mikey179/vfsStream": ">=1.2.0",
Jednak PHPUnit nadal narzeka, że vfsStream nie jest zainstalowany.
Przeglądając repozytorium GitHub dla rozszerzenia Ecomdev_PHPUnit, wygląda na to, że łatka została scalona, aby umożliwić automatyczne ładowanie libvsfstream, gdy używany jest kompozytor . Wydaje się to jednak częściowym rozwiązaniem, ponieważ autoloader kompozytora nigdzie nie jest zawarty, więc wywołanie class_exists nadal kończy się niepowodzeniem.
Mogę edytować /vendor/ivanchepurnyi/ecomdev_phpunit/app/code/community/EcomDev/PHPUnit/bootstrap.php:41, aby dołączyć autoloader kompozytora podczas ładowania (lub skopiować bootstrap.php w inne miejsce w moim projekcie i edytować to) . Czy to najlepsze rozwiązanie tego problemu, czy też brakuje mi funkcji w Composer lub Ecomdev_PhpUnit?
źródło
Inną poprawką jest użycie autoloadera: https://github.com/magento-hackathon/Magento-PSR-0-Autoloader oznacza to, że nie musisz edytować pliku bootstrap.
źródło
Wiem, że może to być trochę za późno, ale po prostu pobierz vfsStream z GitHub i skopiuj / wklej zawartość do lib / vfsStream może rozwiązać Twój problem.
https://github.com/mikey179/vfsStream
źródło