Was überprüfen die statischen Tests?

8

Nach dem Erstellen meines Moduls habe ich versucht zu laufen bin/magento dev:tests:run static.
Dies hat einige Probleme mit meinem Code gemeldet, aber ich bin nicht sicher, was genau beim Ausführen dieser Tests überprüft wird.
Die offizielle Dokumentation sagt

Die statische Code-Analyse überprüft, ob der PHP-Code den Magento 2-Codierungsstandards und Best Practices entspricht. Sie werden normalerweise während der kontinuierlichen Integration mit dem Werkzeug bin / magento ausgeführt.

Das bedeutet aber nicht viel.
Was ich bisher gefunden habe ist.

  • Vorhandensein composer.json
  • Vorhandensein README.md
  • Vorhandensein licence.txt
  • Die Reihenfolge der Konstruktorargumente entspricht der übergeordneten Reihenfolge der Argumente.

Was sonst?

Marius
quelle
@AnkitShah Können Sie mich auf den genauen Absatz auf der von Ihnen verlinkten Seite verweisen, auf dem steht, was die statischen Tests bewirken?
Marius

Antworten:

6

bin/magento dev:tests:run static werde rennen:

  • Weniger statische Code-Analyse: Generic.Files.EndFileNewline, Generic.Files.LineEndings, Generic.WhiteSpace.DisallowTabIndent, Squiz.CSS.NamedColours
  • Analyse des statischen Javascript-Codes: eslint, jshint
  • Überprüfung des PHP-Codierungsstandards:
    1. Gibt eine Whitelist zurück, die auf Blacklist- und Git-geänderten Dateien basiert
    2. Führen Sie die PSR2-Code-Sniffs für den Code aus
    3. Führen Sie die Magento-spezifischen Codierungsstandards für den Code aus
    4. Führen Sie die Annotations-Sniffs für den Code aus
    5. Führen Sie den Messdetektor für den Code aus
    6. Führen Sie den Copy Paste Detector für Code aus
  • Code-Integritätstests:
    1. Erstellen Sie Modulabhängigkeiten
    2. Ein Test, der composer.lock erzwingt, ist mit composer.json auf dem neuesten Stand
    3. Ein Test, der die Gültigkeit von composer.json-Dateien und anderen Konventionen in Magento-Komponenten erzwingt
    4. Hhvm-Kompatibilitätstest
  • Xss Unsicherer Ausgabetest:
    1. / * @noEscape * / vor der Ausgabe. Die Ausgabe erfordert kein Escapezeichen. Test ist grün.
    2. / * @escapeNotVerified * / vor der Ausgabe. Das Entweichen der Ausgabe wird nicht überprüft und * sollte überprüft werden. Test ist grün.
    3. Methoden, deren Namen "html" enthalten (z. B. echo $ object -> {Suffix} Html {postfix} ()). * Daten sind bereit für die HTML-Ausgabe. Test ist grün.
    4. AbstractBlock-Methoden EscapeHtml, EscapeUrl, EscapeQuote, EscapeXssInUrl sind zulässig. Test ist grün.
    5. Typ Casting und PHP-Funktion count () sind erlaubt * (zB echo (int) $ var, echo (float) $ var, echo (bool) $ var, echo count ($ var)). Test ist grün.
    6. Ausgabe in einfachen Anführungszeichen (z. B. Echo 'irgendein Text'). Test ist grün.
    7. Ausgabe in doppelten Anführungszeichen ohne Variablen (z. B. Echo "etwas Text"). Test ist grün.
    8. Andere von S.1-7. Die Ausgabe wird nicht maskiert. Test ist rot.

Quelle: dev / tests / static / phpunit.xml.dist

Jonathan Ribas
quelle
Kannst du bitte ein paar Worte zu jedem hinzufügen? Vielleicht ein Beispiel, das einen bestimmten Test nicht besteht?
Marius
@Marius Ich habe gerade einige Wörter für jedes hinzugefügt (ich habe sie alle aus dem Kern genommen), hoffe, das hilft.
Jonathan Ribas