Cosa stanno controllando i test statici?


8

Dopo aver creato il mio modulo ho provato a correre bin/magento dev:tests:run static.
Ciò ha segnalato alcuni problemi con il mio codice, ma non sono sicuro di cosa sia stato verificato durante l'esecuzione di questi test.
La documentazione ufficiale dice

L'analisi del codice statico verifica che il codice PHP segua gli standard di codifica Magento 2 e le migliori pratiche. Di solito vengono eseguiti durante l'integrazione continua utilizzando lo strumento bin / magento.

Ma questo non significa molto.
Quello che ho trovato finora è.

  • presenza di composer.json
  • presenza di README.md
  • presenza di licence.txt
  • l'ordine degli argomenti del costruttore corrisponde all'ordine degli argomenti principale.

Cos'altro?



@AnkitShah Puoi indicarmi il paragrafo esatto nella pagina che hai collegato dove dice cosa fanno i test statici?
Marius

Risposte:


6

bin/magento dev:tests:run static correrà:

  • Analisi del codice meno statica: Generic.Files.EndFileNewline, Generic.Files.LineEndings, Generic.WhiteSpace.DisallowTabIndent, Squiz.CSS.NamedColours
  • Analisi di codice statico Javascript: eslint, jshint
  • Verifica standard di codifica PHP:
    1. Restituisce la lista bianca in base alla lista nera e git i file modificati
    2. Eseguire il codice PSR2 annusa il codice
    3. Esegui gli standard di codifica specifici di Magento sul codice
    4. Esegui le annotazioni annusando il codice
    5. Esegui il rilevatore di messaggistica sul codice
    6. Esegui copia incolla rilevatore su codice
  • Test di integrità del codice:
    1. Costruisci dipendenze dei moduli
    2. Un test che impone composer.lock è aggiornato con composer.json
    3. Un test che applica la validità dei file composer.json e di qualsiasi altra convenzione nei componenti di Magento
    4. Test di compatibilità Hhvm
  • Xss Test di uscita non sicuro:
    1. / * @noEscape * / prima dell'output. L'output non richiede escape. Il test è verde.
    2. / * @escapeNotVerified * / prima dell'output. L'uscita di uscita non è selezionata e * deve essere verificato. Il test è verde.
    3. Metodi che contengono "html" nei loro nomi (ad esempio echo $ object -> {suffix} Html {postfix} ()). * I dati sono pronti per l'output HTML. Il test è verde.
    4. Sono ammessi i metodi AbstractBlock escapeHtml, escapeUrl, escapeQuote, escapeXssInUrl. Il test è verde.
    5. I tipi di casting e il conteggio delle funzioni php () sono consentiti * (ad esempio echo (int) $ var, echo (float) $ var, echo (bool) $ var, echo count ($ var)). Il test è verde.
    6. Output tra virgolette singole (ad es. Echo 'un po' di testo '). Il test è verde.
    7. Emette tra virgolette doppie senza variabili (es. Echo "un po 'di testo"). Il test è verde.
    8. Altro di p.1-7. L'output non è sfuggito. Il test è rosso.

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


puoi aggiungere qualche parola su ciascuno per favore? Forse un esempio che non supera un test specifico?
Marius

@Marius Ho appena aggiunto alcune parole per ognuna (le ho prese tutte dal core), spero che questo aiuti.
Jonathan Ribas,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.