Komposer yang dipasang Ecomdev_PhpUnit melewatkan tes karena vfsstream hilang

14

Saya sedang bekerja dengan pemasangan Enterprise Edition 1.13.1 (meskipun Edisi Komunitas memiliki masalah yang sama), dan kami menginstal dependensi melalui komposer di mana mereka tersedia. Saya telah menginstal ekstensi Ecomdev_PhpUnit Ivan melalui komposer yang telah membeli semua dependensi phpunit normal. Saya juga menyalin phpunit.xml.dist dari vendor / ivanchepurnyi / ecomdev_phpunit ke direktori root proyek saya.

Ketika saya pertama kali menjalankan unit test saya, saya menerima kesalahan berikut:

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

Saya kemudian menambahkan entri persyaratan-dev berikut untuk composer.jsondan menjalankan composer update:

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

Namun, PHPUnit masih mengeluh bahwa vfsStream tidak diinstal.

Melihat melalui repositori GitHub untuk ekstensi Ecomdev_PHPUnit sepertinya patch telah digabungkan untuk memungkinkan libvsfstream di-autoload ketika komposer digunakan . Namun, ini sepertinya solusi parsial karena komposer autoloader tidak disertakan di mana pun, sehingga panggilan class_exists masih gagal.

Saya dapat mengedit /vendor/ivanchepurnyi/ecomdev_phpunit/app/code/community/EcomDev/PHPUnit/bootstrap.php:41 untuk menyertakan autoloader komposer selama bootstrap (atau menyalin bootstrap.php ke lokasi lain di proyek saya dan mengeditnya) . Apakah ini solusi terbaik untuk masalah ini, atau apakah ada fitur di Composer atau Ecomdev_PhpUnit yang saya lewatkan?

Jim OHalloran
sumber

Jawaban:

3

mengedit bootstrap adalah solusi yang tepat di sini, karena bootstrap milik lingkup proyek Anda sendiri.
Satu pengiriman ecomdev hanyalah contoh / standar, yang berorientasi pada instalasi klasik non-komposer.

Flyingmana
sumber
Terima kasih, itulah solusi yang akhirnya saya gunakan, hanya ingin memastikan saya tidak melewatkan sesuatu.
Jim OHalloran
4

Perbaikan lain untuk ini adalah dengan menggunakan autoloader: https://github.com/magento-hackathon/Magento-PSR-0-Autoloader ini berarti Anda tidak perlu mengedit file bootstrap.

Pete
sumber
+1 Meskipun saya akhirnya mengedit bootstrap.php untuk menyelesaikan masalah saya, ini mungkin solusi yang lebih baik.
Jim OHalloran
2

Saya tahu ini mungkin agak terlambat, tetapi cukup unduh vfsStream dari GitHub dan salin / tempel konten ke lib / vfsStream dapat menyelesaikan masalah Anda.

https://github.com/mikey179/vfsStream

Michel Gokan
sumber
Masalahnya bukan bahwa vfsStream tidak diinstal (itu adalah), itu bahwa itu tidak dapat dimuat secara otomatis.
Jim OHalloran
Tetapi saya memiliki masalah yang persis sama (komposer tidak membantu) dan hanya melakukan solusi yang saya tulis dan diselesaikan.
Michel Gokan
@MichelGokan, solusi Anda bekerja dengan baik untuk saya juga. Terima kasih.
DarkCowboy