これらは一度にかなり多くの質問ですが、私は少なくともいくつかに答えることができます:
- M2が2014年のテストライブラリ(PHPUnitとPHP_CS)を新しいものではなく使用する理由はありますか?
Magento 2の主な開発は2014年頃に始まったため、当時利用可能なツールを使用していました。PHPUnit 5がリリースされたとき、新しいバージョンと互換性のない多数のテストがすでに存在していたため(例については、このフォーラムのスレッドを参照してください)、更新が延期されたことは理解できます。
ここには具体的な例はありませんが、古いPHP_CSバージョンを使用する理由は同じだと思います。
- このテストの出力が混乱しているように見えて、どこでどこがおかしいのかを理解するのが難しいのは正常ですか?CSS / JSのコード品質テストの出力と比較すると、それは悪夢です。PHPバックトレースのように見える代わりに、より優れたレポーターまたは他の方法で意味のあるレポートを取得できますか?
PHPStormのようなIDEはこれらのツールと適切に統合されており、ソースファイルでコードスニファの結果を直接確認したり、PHPUnitテストに関する優れたGUIを取得したりできます。
そのほか、PHPUnitにはさまざまな出力オプションがあります。たとえば、--testdox
引数を指定すると、合格および不合格のテストの人間が読めるチェックリストが表示されます。情報は少なくなりますが、概要は読みやすくなっています。を使用してHTML形式で取得することもできます--testdox-html=OUTPUTFILE
。同様に、HTMLのコードカバレッジレポートをで取得できます--coverage-html OUTPUTDIR
。
しかし、より有用な出力形式は、VisualPHPUnitやCIサーバーなどの他のアプリケーションで読み取ることができるXMLおよびJSON形式です。
レポート生成用のPHPUnitパラメータ:
Code Coverage Options:
--coverage-clover <file> Generate code coverage report in Clover XML format.
--coverage-crap4j <file> Generate code coverage report in Crap4J XML format.
--coverage-html <dir> Generate code coverage report in HTML format.
--coverage-php <file> Export PHP_CodeCoverage object to file.
--coverage-text=<file> Generate code coverage report in text format.
Default: Standard output.
--coverage-xml <dir> Generate code coverage report in PHPUnit XML format.
Logging Options:
--log-junit <file> Log test execution in JUnit XML format to file.
--log-tap <file> Log test execution in TAP format to file.
--log-json <file> Log test execution in JSON format.
--testdox-html <file> Write agile documentation in HTML format to file.
--testdox-text <file> Write agile documentation in Text format to file.
詳細:https : //phpunit.de/manual/current/en/textui.html
レポート生成用のPHP_CSパラメータ
PHP_CSには、さまざまなレポート形式もあります。
--report=xml PHP_CS XML format
--report=checkstyle Checkstyle XML format
--report=csv CSV
(その他の形式:emacs、svnblame、gitblame)
詳細:https : //github.com/squizlabs/PHP_CodeSniffer/wiki/Reporting
- それがとても遅い理由は何ですか?テンプレートファイルの分析には、7〜8分かかります。最悪の場合のフロントエンドテストのほとんどは数秒かかるため、問題に関するライブフィードバックを得る方法はありません。
PHP_CSがテンプレートファイルだけで8分かかる理由はわかりませんが、ウォッチャーは変更されたファイルのみをチェックすることができるはずです。PHPStorm統合は、これを非常にうまく行います。
- Magento 2インスタンス全体(CIテスト)ではなく、単一のモジュール(つまりテーマ)がある場合に、このタイプのテストを実行するにはどうすればよいですか?
単に実行phpcs /path/to/theme
して、このディレクトリ内のファイルのみをチェックします。
- PHP_CSにはすでにGulpの単純なラッパーがあるようですが、設定がどこに保存されているのかわかりません。/.php_csファイルにありますか?
このラッパーにはファイルウォッチャーが含まれているようには見えないため、メリットはわかりません。
.php_cs
チェックして、その使用にコーディング標準をするファイルのファイル定義。これはPHP_CS構成ファイルであり、gulpラッパーから独立しています。