タグ付けされた質問 「ecomdev-phpunit」

4
Magentoのユニットテスト用ツール
Magentoの単体テストには何を使用しますか?または、単体テストとMagentoについて何を知っていますか?TDDを実行する場合でも、プロジェクトコンポーネントの単体テストをカバーする場合でも、これを実行するためのツールが必要です。 最初の基本的なアプローチはプレーンなphpunitを使用することですが、Magentoを「テスト可能」にするために追加のギミックが必要なものがあります。 私が使用したすべてのものはphpunitに関連しています。 MTAF EcomDev_PHPUnit(欠点:メールをテストできない) TechDivision_MagentoUnitTesting(Magento 2ユニットテストのバックポートを試みる) Mage-Test(Magentoの軽量ユニットテスト) 他のオプションはありますか?

3
Magento EE 1.13で設定されたEcomDev_PHPUnit
の手順に従って、EE 1.13でEComDev_PHPUnitをセットアップしようとしています。 https://github.com/EcomDev/EcomDev_PHPUnit まあ最初のハードルはmodmanを動かすことでしたが、私はあきらめてモジュールを手動でコピーしました。2番目の問題はステップ2にあります:私が実行するとき php ecomdev-phpunit.php -a magento-config --db-name $DB_NAME --base-url http://your.magento.url/ という例外が表示されます PHP Fatal error : Class 'Mage_Core_Model_Factory' not found in '../../../shell/abstract.php' on line 88 行って、abstract.phoにrequire_onceでファクトリパスを追加しましたが、別のクラスが見つからないというエラーがスローされます... 誰もこれに遭遇しましたか?VirtualBoxでUbuntu 12.10を使用しています。これに関する助けをいただければ幸いです。 解決策または一時的な解決策: 追加しなければならなかった require_once '../app/code/core/Mage/Core/Model/Factory.php'; require_once '../app/Mage.php'; の最初の行として ../shell/ecomdev-phpunit.php それがうまくいった。私はそれが正しいか間違っているのかわかりません:)専門家の提案を歓迎します

3
ComposerにインストールされたEcomdev_PhpUnitは、vfsstreamがないためにテストをスキップします
私は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に欠けている機能がありますか?

1
Magentoでのユニットテストオブザーバー
Magentoのユニットテストオブザーバーにどのようにアプローチしますか?(EcomDev_PHPUnitでの作業) どのようなアサーションが含まれますか? イベントがディスパッチされているかどうかを確認します(assertEventDispatched()) モックデータで関数を確認する ... 理想的には、他の開発者がアプローチとアサーションに関して意見を述べたいと思います。

1
統合テストを実行する前に、データベースに製品がないことを確認してください
EcomDev_PHPUnitを使用してインポート/エクスポート拡張機能のユニットテストと統合テストを行っています。一部のテストでは、データベースに製品がないことを確認する必要があります。問題は、一部のサードパーティモジュールが製品を作成しているが、後でクリーンアップしないことです。回避するための最良の方法は何ですか? 私の意見では、最もクリーンなアプローチは、データベースに製品を入れたくないことをEcomDev_PHPUnitに伝えるフィクスチャを定義することです。そんな感じ: eav: catalog_product: これはEcomDev_PHPUnitに実装されていないと思います。(それは...ですか?) 私のもう1つの推測はsetUp、製品コレクションを介して利用可能なすべての製品を削除するコードを私のメソッドに追加する必要があることです。 最もエラーが発生しやすい方法は、フィクスチャ内のすべての製品関連テーブルを定義し、EcomDev_PHPUnitでそれらを空にすることです。 自動テストの強力な神々、私にヒントを送ってください! PS:私は通常、結果を模擬し、データベースへの実際の書き込みをテストしないことを知っています。テストでは、製品がMagentoによって認識されたデータベースに書き込まれていることを確認する必要があるため、この方法で行う必要があると思います。とにかく提案を受け入れます。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.