タグ付けされた質問 「testing」

Magentoのテストに関するすべての質問:手動テスト、自動テスト、単体テスト、統合テスト、機能テスト、静的分析、負荷テスト、...

11
test.phpスクリプトでMagento 2をブートストラップするにはどうすればよいですか?
magento 1では、Mage_Core_Model_Appクラスをインスタンス化するだけのファイルを作成し、テスト用に「ダーティ」コードを追加できました。 このようなものtest.php: <?php //some settings error_reporting(E_ALL | E_STRICT); define('MAGENTO_ROOT', getcwd()); $mageFilename = MAGENTO_ROOT . '/app/Mage.php'; require_once $mageFilename; Mage::setIsDeveloperMode(true); ini_set('display_errors', 1); umask(0); //instantiate the app model Mage::app(); //my toy code in here. その後test.php、ブラウザーで呼び出して、自分が何をしているかを確認することができました。 Magento 2でも同じことができますか?
93 magento2  testing 

13
MagentoはPHP 7に対応していますか?
PHP 7はベータステータスに達し、現在多くのテストが行​​われています。Magentoが昨年「PHP 5.3でのみ実行」から「PHP 5.6と完全に互換」に追いついたことを考えると、Magento 1.xおよびMagento 2に対するPHP 7の互換性をどの程度考慮しているかを知りたいと思います。 私が見つかりました。アンナFilinaすることにより、このポスト彼女は(1.9.2でまだ変わらず)Magentoの1.9.1での1つの問題見つけましたが、Magentoの1は、ユニットテストを持っていないことを考えると、私はこれが唯一の問題だったことを信用していません。 質問は次のとおりです。Magento1に対するPHP 7の互換性は保証されますか?また、Magento 2はおそらくPHP 7で既にテストされているので(自動テストに感謝!)、既知の問題はありますか?


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

3
Magento 1テストフレームワーク
できる限り、テスト駆動開発(TDD)アプローチに従ってソフトウェアを開発したいと思っています。通常、PHPではPHPUnitを使用します。 理想的には、きめ細かいテストと粗いテストの両方を作成したいと思います。コードの設計と品質のガイドとなるユニットテスト、すべてがハングすることを確認する統合テスト、および受け入れテストでの高レベルの外部テストにより、お客様が提供するように依頼したものを実際に提供することを確認します。 TDDを促進するMagento用に調整されたテストフレームワークはありますか?

2
Magento 1.9の単体テストのベストプラクティス
いくつかのカスタムモジュールを使用してMagento 1.9サイトを管理しています。一部の機能はビジネスに不可欠であり、いくつかの単体テストが緊急に必要です。例えば、単価計算機。 私は通常Symfonyで開発しており、可能であればPHPUnit(Composer付き)をどうにかして使用したいと思っています。 一部の機能は、いくつかのカスタムデータベーステーブルにインポートされたデータに基づいているため、フィクスチャを何らかの方法でロードしたいと思います。 だから私はいくつかの単体テストを書くためのベストプラクティスのアプローチを探しています。チュートリアルなどを受け付けます。どんな助けでもありがたいです。

3
ソースモデルの単体テスト
私のカスタム拡張機能には、エンティティの追加/編集フォームの一部の選択または複数選択、あるいはその両方の目的を満たすだけのモデルがいくつかあります。 したがって、これらはmagentoが「ソースモデル」と呼ぶものです。 関連する値は常に同じであり、メソッドは同じものを返します。 それらを単体テストするにはどうすればよいですか?または、さらに良いことに、それらの単体テストを作成する必要がありますか? 例を示します。 次のクラスは、呼び出されたフィールドの追加/編集フォーム、typeおよび同じフィールドのグリッド列に使用されます。 <?php namespace Sample\News\Model\Author\Source; use Magento\Framework\Option\ArrayInterface; class Type implements ArrayInterface { const COLLABORATOR = 1; const EMPLOYEE = 2; /** * Get options * * @return array */ public function toOptionArray() { $_options = [ [ 'value' => '', 'label' => '' ], [ 'value' …

2
AbstractBackendControllerを使用した構成ページのテスト:testAclNoAccessが失敗する
構成セクションの統合テストを作成しているときに、デフォルトのテストケースで次のエラーが発生しました。 My\Module\ConfigTest::testAclNoAccess Failed asserting that 302 is identical to 403 私の知る限り、すべてが正常に機能しますが、Magentoは、構成セクションでアクセスが拒否されたときに、「禁止」ではなくリダイレ​​クト応答を送信します。 テストを変更して302ステータスコードを期待するのは理にかなっていますか?このテストケースは、間違ったリソース識別子をキャッチするのに既に役立っているので、削除しないほうがよいでしょう。 これは関連するコードです: namespace My\Module; use Magento\TestFramework\TestCase\AbstractBackendController; class ConfigTest extends AbstractBackendController { protected function setUp() { parent::setUp(); $this->uri = 'backend/admin/system_config/edit'; $this->resource = 'My_Module::config_my_module'; $this->getRequest()->setParam('section', 'my_module'); } // [other tests] }

1
Magento 2:統合テスト機能の使用目的は何ですか?
Magento 2の統合テストをたくさん書いています。これは私のローカル開発に役立ち、CIの作業方法にうまく適合します。 ただし、Magentoの統合テストスイートにはいくつかの奇妙な点があります。例えば: デフォルトですべてのモジュールを有効にしますが、これを無効にする方法はありません。クライアントプロジェクトでは、Vertexモジュールなどの不要なモジュールを無効にする可能性が高いため、これには望ましくない副作用が生じる可能性があります。ただし、このモジュールは顧客モデルに必須フィールドを追加するため、統合テストで顧客を作成すると、このテストは失敗します。 Magentoテストモジュールをコードベースに追加します。したがって、統合テストスイートを実行するたびに、app/code/Magento名前空間に3つの追加モジュールが存在することになります。 これらの問題により、統合テストをローカルプロジェクトで使用することが困難になっています。誰かがかつて、統合テストは拡張モジュールの開発者がモジュールを市場に出すための基準を満たしているかどうかをテストするためにのみ作成されると私に言った。これは本当ですか?もしそうなら:あなたのクライアントのウェブショップのための統合テストを書くための適切な方法は何ですか?Magentoの注釈などが好きです。これは本当にイライラします。

2
Magentoアップグレードの自動回帰テストを実行する方法
手動テストについて説明している「Magentoアップグレードをテストする方法」など、Magento Webサイトのテストに関連するいくつかの質問が表示されます。 アップグレードの自動回帰テスト用のツールはありますか?理想的なツールは、データベース(または以前のクロール)から私の製品などを学習し、アップグレード後にすべてが機能していることを確認します。 多くの拡張機能とテーマ/テンプレートの手動テストに代わるものはないと確信しています。しかし、自動回帰テストの一般的な健全性チェックは価値があります。 新しい拡張機能をインストールした後で、自動回帰を使用することもできます。

3
ユニットテストでファクトリまたはプロキシを生成:「ReflectionException:Class…Factory does not exist」
私が理解している限りFactory、Proxyクラスがまだ存在しない場合、クラスはオートローダーによってオンザフライで生成されますvar/generation(参照:Magento 2でのファクトリーの生成をトリガーするもの) しかし、ユニットテストで新しいファクトリを参照するときにこのエラーが発生するのはなぜですか? ReflectionException:クラスMagento \ Framework \ Api \ Search \ SearchCriteriaBuilderFactoryは存在しません [...] / vendor / magento / framework / TestFramework / Unit / Helper / ObjectManager.php:161 use Magento\Framework\Api\Search\SearchCriteriaBuilderFactory; use Magento\Framework\TestFramework\Unit\Helper\ObjectManager; class SearchCriteriaTest extends \PHPUnit_Framework_TestCase { public function testFactoryGeneration() { $searchCriteriaBuilderFactory = (new ObjectManager($this))->getObject(SearchCriteriaBuilderFactory::class); } } ブートストラップファイルを使用していますdev/tests/unit/framework/bootstrap.php。 クラスを生成するために見つけた回避策: 実際のオブジェクトマネージャーを使用(ありがとう@DigitalPianism): \Magento\Framework\App\Bootstrap::create(BP, …

1
Magento 2統合テストのモックの依存関係
次のシナリオを想定します。 外部サービスを呼び出すクラスがあります クラスはインターフェースを実装し、このインターフェースの優先実装として di.xml ブロックは、コンストラクター・パラメーターとしてこのインターフェースを受け取ります このブロックを使用する統合テストでMagentoリクエストをテストしたい 私は実際に外部サービスを呼び出したくないので、そのクラスをモックして、それを行うための最良の方法は何だろうと思います。 私はあなたがオンザフライでDI設定を定義できることを知っています $objectManager->configure( ['preferences' => [TheInterface::class => MockClass::class]] ); しかし、これにはMockClass自分でモッククラスを定義する必要があります。PHPUnitモックオブジェクトを使用できません。 実際のモックオブジェクトを作成するモックファクトリを作成できるため、注入されたクラスがファクトリの場合、これは問題なく動作します。 しかし、これが唯一の方法ですか、それとも私は何かを逃していますか? 更新: 提案された方法 $objectManager->addSharedInstance($mock, TheInterface::class); 最初は見栄えが良かったが、設定が定義されていない場合にのみ機能した。これらは共有インスタンスよりも優先されます。 私は動的に設定を削除しようとしました: $this->objectManager->configure( ['preferences' => [TheInterface::class => null]] ); しかし、残念ながらMagentoはltrim($to, '\\')引数を呼び出し、それが空の文字列に変換します。これは結果として: ReflectionException:クラスが存在しない

2
フロントエンド開発者向けのPHP静的テスト
私はFrontoolsでPHP静的テストを追加してテストプロセスを簡素化および改善しようとしています。パフォーマンスを向上させることができる場合、b / c結果を得るのに非常に時間がかかります。 GHの問題-https://github.com/SnowdogApps/magento2-frontools/issues/45 私はPHPのテストライブラリやツールに慣れていないので、いくつか質問があります。 M2が2014年のテストライブラリ(PHPUnitとPHP_CS)を新しいものではなく使用する理由はありますか? このテストの出力が混乱しているように見え、何がどこでどこで問題が発生したのかを理解することが難しいのは正常ですか?CSS / JSのコード品質テストの出力と比較すると、それは悪夢です。PHPのバックトレースのように見える代わりに、より良いレポーターや、意味のあるレポートを取得する他の方法はありますか? それがとても遅い理由は何ですか?テンプレートファイルの分析には、7〜8分かかります。最悪の場合のフロントエンドテストのほとんどは数秒かかるため、問題に関するライブフィードバックを得る方法はありません。 Magento 2インスタンス全体(CIテスト)ではなく、単一のモジュール(つまりテーマ)がある場合に、このタイプのテストを実行するにはどうすればよいですか? PHP_CSにはすでにGulpの単純なラッパーがあるようですが、設定がどこに保存されているのかわかりません。/.php_csファイルにありますか?

1
Magento 2:未定義のメソッドMock_BlockFactory_4b440480 :: create()テストの呼び出しの修正
私は最近、プル提出し、直接使用されているオブジェクトマネージャの単一のインスタンスを修正するためにMagentoのにリクエストを。 ただし、Magentoのtravisユニットテストの実行は次のエラーで失敗しました。 PHPの致命的なエラー:/home/travis/build/magento/magento2/app/code/Magento/Cms/Controller/Adminhtml/Block/Delete.phpの39行目の未定義メソッドMock_BlockFactory_4b440480 :: create()への呼び出し travisビルドに基づいて、どのテストが失敗したかさえわかりません。スタックトレースを使用して、ローカルで同様の(同一の)エラーをローカルで取得できました PHP Fatal error: Call to undefined method Mock_BlockFactory_ec77572c::create() in /Users/alanstorm/Documents/github/astorm/magento2/app/code/Magento/Cms/Controller/Adminhtml/Block/Delete.php on line 39 PHP Stack trace: PHP 1. {main}() /Users/alanstorm/Documents/github/astorm/magento2/vendor/phpunit/phpunit/phpunit:0 PHP 2. PHPUnit_TextUI_Command::main() /Users/alanstorm/Documents/github/astorm/magento2/vendor/phpunit/phpunit/phpunit:55 PHP 3. PHPUnit_TextUI_Command->run() /Users/alanstorm/Documents/github/astorm/magento2/vendor/phpunit/phpunit/src/TextUI/Command.php:132 PHP 4. PHPUnit_TextUI_TestRunner->doRun() /Users/alanstorm/Documents/github/astorm/magento2/vendor/phpunit/phpunit/src/TextUI/Command.php:179 PHP 5. PHPUnit_Framework_TestSuite->run() /Users/alanstorm/Documents/github/astorm/magento2/vendor/phpunit/phpunit/src/TextUI/TestRunner.php:426 PHP 6. PHPUnit_Framework_TestSuite->run() /Users/alanstorm/Documents/github/astorm/magento2/vendor/phpunit/phpunit/src/Framework/TestSuite.php:675 PHP 7. PHPUnit_Framework_TestCase->run() /Users/alanstorm/Documents/github/astorm/magento2/vendor/phpunit/phpunit/src/Framework/TestSuite.php:675 …

1
Magento Enterprise Edition 1.14自動化機能テスト
Magento Enterprise Edition 1.14には事前に作成された機能自動化テストがありますか?私たちはMagento 1.14を使用しており、say testngを使用して機能のエンドツーエンドのユーザージャーニーテストを最初から作成する必要があるか、またはMagento 1.14に付属の機能テスト(存在する場合)を使用してビルドするかを決定する必要があります? 私の他の質問は、ログイン、注文の発注、注文の支払い、注文のキャンセルなどのエンドツーエンドのユーザージャーニーテストを実行するだけでは不十分です。QAテスターの下にあるユニット(コード)を暗黙的にテストします視点? また、Magentoフレームワークを使用しない場合は、Magentoをまったく使用しない他のストアでも同じ自動化テストを使用できるようになると考えています。 考えを共有する。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.