ComposerにインストールされたEcomdev_PhpUnitは、vfsstreamがないためにテストをスキップします


14

私はEnterprise Edition 1.13.1のインストールで作業しています(Community Editionでも同じ問題が発生しますが)、コンポーザーを使用して依存関係をインストールします。IvanのEcomdev_PhpUnit拡張機能は、通常のphpunitの依存関係をすべて購入したcomposerを介してインストールしました。また、phpunit.xml.distをvendor / ivanchepurnyi / ecomdev_phpunitからプロジェクトのルートディレクトリにコピーしました。

ユニットテストを初めて実行したときに、次のエラーを受け取りました。

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

その後、次のrequire-devエントリを追加しcomposer.jsonて実行しましたcomposer update

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

ただし、PHPUnitはvfsStreamがインストールされていないことを訴えます。

Ecomdev_PHPUnit拡張モジュールのGitHubリポジトリを見ると、composerの使用時にlibvsfstreamを自動ロードできるようにするパッチがマージされているように見えます。ただし、コンポーザーオートローダーはどこにも含まれていないため、これは部分的な解決策のように見えます。そのため、class_exists呼び出しは依然として失敗します。

/vendor/ivanchepurnyi/ecomdev_phpunit/app/code/community/EcomDev/PHPUnit/bootstrap.php:41を編集して、ブートストラップ中にcomposerオートローダーを含めることができます(または、bootstrap.phpをプロジェクトの別の場所にコピーして編集します) 。これがこの問題の最良の解決策ですか、それともComposerまたはEcomdev_PhpUnitに欠けている機能がありますか?

回答:


3

ブートストラップは独自のプロジェクトスコープに属するため、ここではブートストラップの編集が正しいソリューションです。
ecomdevが提供するものは単なる例/デフォルトのものであり、従来の非作曲家のインストールを対象としています。


おかげで、それが私が使用することになった解決策であり、私が何かを見逃していないことを確認したかっただけです。
ジムオハロラン14年


2

これは少し遅れることがありますが、GitHubからvfsStreamをダウンロードし、コンテンツをlib / vfsStreamにコピー/貼り付けするだけで問題が解決する場合があります。

https://github.com/mikey179/vfsStream


問題は、vfsStreamがインストールされていない(インストールされている)ことではなく、オートロードできないことです。
ジムオハロラン14年

しかし、私はまったく同じ問題を抱えており(作曲家は助けませんでした)、私が書いた解決策を実行しただけで解決しました。
ミシェルゴカン14年

@MichelGokan、あなたのソリューションは私にとってもうまくいきました。THX。
ダークカウボーイ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.