Magentoのユニットテスト用ツール


23

Magentoの単体テストには何を使用しますか?または、単体テストとMagentoについて何を知っていますか?TDDを実行する場合でも、プロジェクトコンポーネントの単体テストをカバーする場合でも、これを実行するためのツールが必要です。

最初の基本的なアプローチはプレーンなphpunitを使用することですが、Magentoを「テスト可能」にするために追加のギミックが必要なものがあります。

私が使用したすべてのものはphpunitに関連しています。

他のオプションはありますか?

回答:


14

PHPUnitベースではなく、Magento統合が必要な場合は、MageSpecで PHPSpecを確認してください。使用可能ですが、プライムタイムに向けて準備が整っているわけではありません。PHPSpec 2はモックのためにProphecy(これは素晴らしい)を使用しますが、マジックゲッターとセッターはまったく好きではありません。そのため、代わりにMockeryを使用することをお勧めします。Mockeryは正常に機能します(そして、私も非常に気に入っています)。

次に、Magento を使用したBDD for BehatMageを使用したBehatもあります。一見の価値がありますが、たとえば、異なるドメインで異なるストアビューをテストする場合は失敗します。

また、ハッカソンから生まれたMageBehat(ひどいネーミング!)というBehatMageの拡張機能もあります。BehatMageにMagento固有のアクションを多数提供しますが、正直なところ、使用されている回避策のいくつかは、根本的な問題に対する実際のソリューションというよりはハックです。それでも、その使用可能。

MageSpecとBehatMageの両方のプロジェクトが将来繁栄することを期待しています。


返信ありがとうございます。BehatMageとInviqa / Session Digitalのチームの仕事について知っています(彼らの会社構造はわかりません)...私はphpunitのものだけを探していました。しばらく前にMageSpec。
FlorinelChis

英語は私の母国語ではなく、私が提供した詳細はもっと明確だったかもしれません。私は、London Magento User Group-December Meetupの調査を行っています。
FlorinelChis

4

PHPUnitは、Magento 2が使用するものです。GitHubのサンプルファイルを次に示します。https://github.com/magento/magento2/blob/master/dev/tests/unit/testsuite/Magento/Captcha/Helper/DataTest.php。(そのファイルをランダムに選択しました。)Magento 2のテストアプローチを簡単に確認して、現在の操作がリリースされたときにMagento 2と互換性があるようにすることができます。


OPはここでMagneto 2について話しているとは思わない。
マリウス

3

EcomDev PHPUnit使用する必要があります

個人的には、すべてのMagento開発者が一貫した単体テストソリューションを目指して努力する必要があると考えています。EcomDevは、これらのフレームワークの中で最も一般的に使用され、最も成熟したフレームワークを提供します。そのため、経験豊富な開発者のプールがすでにあります。また、単一のフレームワークを使用すると、数え切れないほどの異なるフレームワークをインストールする必要が少なくなります。

ただし、EcomDev PHPUnitには、実稼働コードと一緒にテストを直接配置するという奇妙な規則があります。幸いなことに、これは数行のコードを修正することで簡単に対処できます。また、EcomDevは更新に甘んじています(ただし、Githubリポジトリはアクティビティの兆候を示しているため、明らかに生きています)。


それで、すべてを言って、コア機能をテストする定義済みの単体テストのセット(ecomdev_unittestを使用)があるリポジトリがどこかにありますか?(私はMTAFがこれを行うことを知っていますが、どこかに事前定義された単体テストがありますか?)
ProxiBlue

1
@ProxiBlueいいえ、私が知っていることはありません。ただし、これはコミュニティプロジェクトにとっては非常に良い考えです。
タイファン

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.