静的テストのチェックとは何ですか?


8

モジュールをビルドした後、実行してみましたbin/magento dev:tests:run static
これは私のコードにいくつかの問題を報告しましたが、このテストを実行するときに何がチェックされるのか正確にはわかりません。
公式ドキュメントによれば

静的コード分析は、PHPコードがMagento 2コーディング標準とベストプラクティスに従っていることを確認します。これらは通常、bin / magentoツールを使用した継続的インテグレーション中に実行されます。

しかし、それはそれほど意味がありません。
これまでに見つけたものです。

  • の存在 composer.json
  • の存在 README.md
  • の存在 licence.txt
  • コンストラクター引数の順序は、引数の親の順序と一致します。

ほかに何か?



@AnkitShah静的テストで何ができるかを示しているリンク先のページの正確な段落を教えていただけますか?
マリウス

回答:


6

bin/magento dev:tests:run static 実行されます:

  • 静的コード分析の削減:Generic.Files.EndFileNewline、Generic.Files.LineEndings、Generic.WhiteSpace.DisallowTabIndent、Squiz.CSS.NamedColours
  • JavaScript静的コード分析:eslint、jshint
  • PHPコーディング標準の検証:
    1. ブラックリストとgitで変更されたファイルに基づいてホワイトリストを返します
    2. コードでPSR2コードスニフを実行する
    3. コードでMagento固有のコーディング標準を実行する
    4. コードで注釈スニッフィングを実行する
    5. コードで混乱検出器を実行する
    6. コードでコピーペースト検出器を実行
  • コード整合性テスト:
    1. ビルドモジュールの依存関係
    2. composer.lockを適用するテストはcomposer.jsonで最新です
    3. Magentoコンポーネントのcomposer.jsonファイルおよびその他の規則の有効性を実施するテスト
    4. Hhvm互換性テスト
  • Xss Unsafe出力テスト:
    1. / * @noEscape * /出力前。出力はエスケープする必要がありません。テストは緑です。
    2. / * @escapeNotVerified * /出力前。出力エスケープはチェックされず、*検証する必要があります。テストは緑です。
    3. 名前に「html」を含むメソッド(echo $ object-> {suffix} Html {postfix}()など)。*データはHTML出力の準備ができています。テストは緑です。
    4. AbstractBlockメソッドescapeHtml、escapeUrl、escapeQuote、escapeXssInUrlが許可されます。テストは緑です。
    5. 型キャストとphp関数count()が許可されます*(たとえば、echo(int)$ var、echo(float)$ var、echo(bool)$ var、echo count($ var)))。テストは緑です。
    6. 一重引用符で出力します(例: 'some text'をエコーし​​ます)。テストは緑です。
    7. 変数を含まない二重引用符で出力します(たとえば、「一部のテキスト」をエコーし​​ます)。テストは緑です。
    8. 1-7ページのその他。出力はエスケープされません。テストは赤です。

ソース:dev / tests / static / phpunit.xml.dist


それぞれについて少し説明してください。特定のテストに合格しない例でしょうか?
マリウス

@Marius私はそれぞれにいくつかの単語を追加しました(コアからすべて取り出しました)。これが役立つことを願っています。
ジョナサンリバス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.