Magento2で特定のモジュールのテストを実行する


52

Magentoのテストを実行して使用するにphp bin/magento dev:tests:runは、多くの時間がかかります。
特定のモジュールに対してのみテストを実行する方法はありますか?

私は(ユニット)テストの初心者なので、慈悲を持っています。


コマンドが何をするのか見てみましたか?つまり、そのコードでは、おそらく別の引数(またはリスト)を必要とします。
ジュリアンラカル

1
@JulienLachal。それを試しました。指定できる引数(タイプ)は1つだけall, unit, integration, integration-all, static, static-all, integrity, legacy, defaultです。そして、-h, -q, ...そのようないくつかの一般的なオプションはすべてのコマンドで利用可能です。それらについて何も特別なので
マリウス

回答:


51

Magento 2は、テストの実行にphpunitフレームワークを使用します。次のコマンドを使用して、タイプおよびモジュールごとにテストを実行できます。

{phpunit_executable} -c {Magentoroot}/dev/test/{type}/phpunit.xml[.dist] path/to/module/test/dir

例えば:

  • 実行するユニット用のテストカタログを、次のコマンドを実行する必要が

    vendor/phpunit/phpunit/phpunit -c dev/tests/unit/phpunit.xml.dist app/code/Magento/Catalog/Test/Unit/

  • Catalogの統合テストを実行するには、実行する必要があります vendor/phpunit/phpunit/phpunit -c dev/tests/integration/phpunit.xml.dist dev/tests/integration/testsuite/Magento/Catalog

現在、ユニットテストのみがモジュールに移行されています。また、静的および統合の整合性テストは、すべてのmagentoコードで機能しています。


それで、彼らが公式に2.0.0をリリースしたにもかかわらず、一般的に言えば、自動化されたテスト全体はいまだに混乱していますか?
ピーディー

@KAndy、カタログモジュールユニットテストを実行しましたが、cliは次のようなエラーを表示します。致命的なエラー:未定義関数の呼び出しMagento \ Catalog \ Block \ Adminhtml \ Product \ Edit \ Action \ Attribute \ Tab __()in / var / www / html / magento2 / vendor / magento / module-catalog / Block / Adminhtml / Product / Edi‌ t / Action / Attribute / Tab / Inventory.phpの89行目。コアモジュールエラーが表示されます。エラーの原因は何ですか。plzはそれを説明します。
ラケシュジェサディヤ

@RakeshJesadiya、ブートストラップファイルにはapp_functions.phpが含まれていないように見えますが、ここで関数__()が定義されています
KAndy

うん..私にとっては、「vendor / phpunit / phpunit / phpunit -c dev / tests / unit / phpunit.xml.dist app / code / Magento / Catalog / Test / Unit」を実行すると2.0.2でまったく実行されません/ "magentoのルートディレクトリにある" Sebastian BergmannによるPHPUnit 4.1.0。ファイル "app / code / Magento / Catalog / Test / Unit / .php"を開けません。 " ...
ラチェザールレイチェフ

1
@LachezarRaychev Magentoコアコードはapp / code / Magentoパスにありません。そのベンダー/ magentoに移動しました。このコマンドを試してくださいphp vendor/phpunit/phpunit/phpunit -c dev/tests/unit/phpunit.xml.dist vendor/magento/module-catalog/
フラン

15

kandyの答えは進むべき道のように見えますが、その間に私はそれを行うための迅速で汚い方法を見つけました。

コピーdev/tests/unit/phpunit.xml.distdev/tests/unit/phpunit.xmlて置換

<directory suffix="Test.php">../../../app/code/*/*/Test/Unit</directory>

<directory suffix="Test.php">../../../app/code/[Namespace]/[Module]/Test/Unit</directory>  

directoryタグ内の他のタグをコメント化します<testsuite>

完了したら、変更を元に戻すか、削除しphpunit.xmlます。


こんにちはマリウス、カタログモジュールのcliを使用して単体テストを実行する方法、実行する必要があるコマンド、ベースパスはmagento2 / binですか?
ラケシュジェサディヤ

それはカンディからの答えです。 vendor/phpunit/phpunit/phpunit -c dev/tests/unit/phpunit.xml.dist app/code/Magento/Catalog/Test/Unit/
マリウス

1
@Rakesh ::この更新されたコマンドを試してください。php vendor/phpunit/phpunit/phpunit -c dev/tests/unit/phpunit.xml.dist vendor/magento/module-catalog/Magentoのコアコードは、vendor / magentoのパスに移動しました。
フラン

を使用してカスタムモジュールのユニットテストを実行する方法:php vendor / phpunit / phpunit / phpunit -c dev / tests / unit / phpunit.xml.disvendor / magento / module-catalog /
Sushivam

@SachinS。私が説明したように。phpunit.xmlファイルを一時的に編集し、テストするモジュールへのパスを入力します。
マリウス

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